diff --git a/components/Left/Left.php b/components/Left/Left.php
index 25f6f9464b..4713d1e418 100644
--- a/components/Left/Left.php
+++ b/components/Left/Left.php
@@ -19,8 +19,21 @@
namespace Component\Left;
+use App\Core\Event;
use App\Core\Modules\Component;
class Left extends Component
{
+ /**
+ * Output our dedicated stylesheet
+ *
+ * @param array $styles stylesheets path
+ *
+ * @return bool hook value; true means continue processing, false means stop.
+ */
+ public function onEndShowStyles(array &$styles): bool
+ {
+ $styles[] = 'components/Left/assets/css/left.css';
+ return Event::next;
+ }
}
diff --git a/templates/left/view.html.twig b/components/Left/templates/left/view.html.twig
similarity index 87%
rename from templates/left/view.html.twig
rename to components/Left/templates/left/view.html.twig
index f8f833d526..bcdad88f4c 100644
--- a/templates/left/view.html.twig
+++ b/components/Left/templates/left/view.html.twig
@@ -1,7 +1,3 @@
-{% block stylesheets %}
-
-{% endblock stylesheets %}
-
{% block leftpanel %}
diff --git a/components/Right/Right.php b/components/Right/Right.php
index bc60b76806..284e8c5823 100644
--- a/components/Right/Right.php
+++ b/components/Right/Right.php
@@ -19,8 +19,21 @@
namespace Component\Right;
+use App\Core\Event;
use App\Core\Modules\Component;
class Right extends Component
{
+ /**
+ * Output our dedicated stylesheet
+ *
+ * @param array $styles stylesheets path
+ *
+ * @return bool hook value; true means continue processing, false means stop.
+ */
+ public function onEndShowStyles(array &$styles): bool
+ {
+ $styles[] = 'components/Right/assets/css/right.css';
+ return Event::next;
+ }
}
diff --git a/templates/right/view.html.twig b/components/Right/templates/right/view.html.twig
similarity index 91%
rename from templates/right/view.html.twig
rename to components/Right/templates/right/view.html.twig
index 4149d1ff40..ea2f1323b4 100644
--- a/templates/right/view.html.twig
+++ b/components/Right/templates/right/view.html.twig
@@ -1,7 +1,3 @@
-{% block stylesheets %}
-
-{% endblock stylesheets %}
-
{% block rightpanel %}
diff --git a/plugins/Cover/Cover.php b/plugins/Cover/Cover.php
index cd0d5adc87..c343dc3355 100644
--- a/plugins/Cover/Cover.php
+++ b/plugins/Cover/Cover.php
@@ -94,7 +94,7 @@ class Cover extends Plugin
*/
public function onStartShowStyles(array &$styles): bool
{
- $styles[] = 'cover/cover.css';
+ $styles[] = 'assets/css/cover.css';
return Event::next;
}
}
diff --git a/plugins/Cover/css/cover/cover.css b/plugins/Cover/assets/css/cover.css
similarity index 100%
rename from plugins/Cover/css/cover/cover.css
rename to plugins/Cover/assets/css/cover.css
diff --git a/public/assets/default_theme/css/core/base.css b/public/assets/default_theme/css/base.css
similarity index 90%
rename from public/assets/default_theme/css/core/base.css
rename to public/assets/default_theme/css/base.css
index df870a18aa..ea08d94a03 100644
--- a/public/assets/default_theme/css/core/base.css
+++ b/public/assets/default_theme/css/base.css
@@ -1,11 +1,10 @@
-@import url("../widgets/buttons.css");
-@import url("../widgets/sections.css");
+@import url("widgets/buttons.css");
+@import url("widgets/sections.css");
+@import url("widgets/feeds.css");
+@import url("widgets/settings.css");
-@import url("../../fonts/poppins/poppins.css");
-@import url("../../fonts/opensans/opensans.css");
-
-@import url("feed.css");
-@import url("settings.css");
+@import url("../fonts/poppins/poppins.css");
+@import url("../fonts/opensans/opensans.css");
:root {
/* FONTS */
@@ -46,7 +45,7 @@
.bg {
background-color: var(--bg1);
- background-image: url("../../images/background_dark.png");
+ background-image: url("../images/background_dark.png");
}
body:after {
@@ -64,7 +63,7 @@
}
select {
- background-image: url("../../images/select_drop_dark.png") !important;
+ background-image: url("../images/select_drop_dark.png") !important;
}
}
@@ -85,11 +84,11 @@
.bg {
background-color: var(--bg1);
- background-image: url(../../images/background_light.png);
+ background-image: url(../images/background_light.png);
}
select {
- background-image: url("../../images/select_drop_light.png") !important;
+ background-image: url("../images/select_drop_light.png") !important;
}
}
@@ -324,14 +323,57 @@ and (max-width: 1280px) {
#panel-left-toggle:checked ~ .panel-content,
#panel-right-toggle:checked ~ .panel-content,
a[id|="anchor"]:target ~ .panel-content {
- background-image: url(../../images/background_dark.png);
+ background-image: url(../images/background_dark.png);
}
}
@media (prefers-color-scheme: light) {
#panel-left-toggle:checked ~ .panel-content,
#panel-right-toggle:checked ~ .panel-content,
a[id|="anchor"]:target ~ .panel-content {
- background-image: url(../../images/background_light.png);
+ background-image: url(../images/background_light.png);
}
}
-}
\ No newline at end of file
+}
+
+/* ANIMATIONS */
+@keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ transform: translateY(-10px);
+ }
+
+ 100% {
+ opacity: unset;
+ transform: none;
+ }
+}
+
+@keyframes fadeOut {
+ 100% {
+ opacity: 0;
+ transform: translateY(-10px);
+ }
+
+ 0% {
+ opacity: unset;
+ transform: none;
+ }
+}
+
+@keyframes highlight {
+ 0% {
+ box-shadow: initial;
+ border-radius: var(--unit-size);
+ }
+
+ 50% {
+ border-radius: var(--unit-size);
+ box-shadow: inset 0 20px 40px var(--white);
+ transition: box-shadow 0.3s ease-in-out;
+ }
+
+ 100% {
+ box-shadow: initial;
+ border-radius: var(--unit-size);
+ }
+}
diff --git a/public/assets/default_theme/css/core/opensans.css b/public/assets/default_theme/css/core/opensans.css
deleted file mode 100644
index ae550d3e27..0000000000
--- a/public/assets/default_theme/css/core/opensans.css
+++ /dev/null
@@ -1,90 +0,0 @@
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Italic'), local('OpenSans-Italic'),
- url('OpenSans-Italic.woff') format('woff');
- font-weight: 900;
- font-style: italic;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Light'), local('OpenSans-Light'),
- url('OpenSans-Light.woff') format('woff');
- font-weight: 300;
- font-style: normal;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Regular'), local('OpenSans-Regular'),
- url('OpenSans-Regular.woff') format('woff');
- font-weight: normal;
- font-style: normal;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
- url('OpenSans-BoldItalic.woff') format('woff');
- font-weight: bold;
- font-style: italic;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans SemiBold Italic'), local('OpenSans-SemiBoldItalic'),
- url('OpenSans-SemiBoldItalic.woff') format('woff');
- font-weight: 600;
- font-style: italic;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'),
- url('OpenSans-ExtraBold.woff') format('woff');
- font-weight: bold;
- font-style: normal;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Bold'), local('OpenSans-Bold'),
- url('OpenSans-Bold.woff') format('woff');
- font-weight: bold;
- font-style: normal;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'),
- url('OpenSans-SemiBold.woff') format('woff');
- font-weight: 600;
- font-style: normal;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Italic'), local('OpenSans-Italic'),
- url('OpenSans-Italic.woff') format('woff');
- font-weight: normal;
- font-style: italic;
- font-display: swap;
-}
-
-@font-face {
- font-family: 'Open Sans';
- src: local('Open Sans Light Italic'), local('OpenSans-LightItalic'),
- url('OpenSans-LightItalic.woff') format('woff');
- font-weight: 300;
- font-style: italic;
- font-display: swap;
-}
-
diff --git a/public/assets/default_theme/css/core/feed.css b/public/assets/default_theme/css/widgets/feeds.css
similarity index 83%
rename from public/assets/default_theme/css/core/feed.css
rename to public/assets/default_theme/css/widgets/feeds.css
index 17dc4bd7c4..3d907dca9d 100644
--- a/public/assets/default_theme/css/core/feed.css
+++ b/public/assets/default_theme/css/widgets/feeds.css
@@ -123,24 +123,24 @@
}
.favourite-button-container {
- -webkit-mask-image: url("../icons/heart.svg") !important;
- -o-mask-image: url("../icons/heart.svg") !important;
- -moz-mask-image: url("../icons/heart.svg") !important;
- mask-image: url("../icons/heart.svg") !important;
+ -webkit-mask-image: url("../../icons/heart.svg") !important;
+ -o-mask-image: url("../../icons/heart.svg") !important;
+ -moz-mask-image: url("../../icons/heart.svg") !important;
+ mask-image: url("../../icons/heart.svg") !important;
}
.reply-button-container {
- -webkit-mask-image: url("../icons/reply.svg") !important;
- -o-mask-image: url("../icons/reply.svg") !important;
- -moz-mask-image: url("../icons/reply.svg") !important;
- mask-image: url("../icons/reply.svg") !important;
+ -webkit-mask-image: url("../../icons/reply.svg") !important;
+ -o-mask-image: url("../../icons/reply.svg") !important;
+ -moz-mask-image: url("../../icons/reply.svg") !important;
+ mask-image: url("../../icons/reply.svg") !important;
}
.repeat-button-container {
- -webkit-mask-image: url("../icons/repeat.svg") !important;
- -o-mask-image: url("../icons/repeat.svg") !important;
- -moz-mask-image: url("../icons/repeat.svg") !important;
- mask-image: url("../icons/repeat.svg") !important;
+ -webkit-mask-image: url("../../icons/repeat.svg") !important;
+ -o-mask-image: url("../../icons/repeat.svg") !important;
+ -moz-mask-image: url("../../icons/repeat.svg") !important;
+ mask-image: url("../../icons/repeat.svg") !important;
}
.note-actions-unset {
@@ -169,7 +169,7 @@
border-radius: var(--unit-size);
background-color: var(--translucent);
- padding: var(--smaller-size);
+ padding: var(--unit-size);
align-self: flex-start;
}
diff --git a/public/assets/default_theme/css/core/settings.css b/public/assets/default_theme/css/widgets/settings.css
similarity index 100%
rename from public/assets/default_theme/css/core/settings.css
rename to public/assets/default_theme/css/widgets/settings.css
diff --git a/public/assets/default_theme/css/components/left.css b/public/components/Left/assets/css/left.css
similarity index 100%
rename from public/assets/default_theme/css/components/left.css
rename to public/components/Left/assets/css/left.css
diff --git a/public/assets/default_theme/css/components/right.css b/public/components/Right/assets/css/right.css
similarity index 100%
rename from public/assets/default_theme/css/components/right.css
rename to public/components/Right/assets/css/right.css
diff --git a/src/Twig/Runtime.php b/src/Twig/Runtime.php
index 129aa9429b..e1f20390d0 100644
--- a/src/Twig/Runtime.php
+++ b/src/Twig/Runtime.php
@@ -85,8 +85,8 @@ class Runtime implements RuntimeExtensionInterface, EventSubscriberInterface
public function getShowStylesheets()
{
$styles = [];
- Event::handle('ShowStyles', [&$styles]);
- return implode("\n", $styles);
+ Event::handle('EndShowStyles', [&$styles]);
+ return $styles;
}
/**
diff --git a/templates/base.html.twig b/templates/base.html.twig
index 23bc7a2c29..dfc30e45ba 100644
--- a/templates/base.html.twig
+++ b/templates/base.html.twig
@@ -15,11 +15,11 @@
-
-
+
+
{% for stylesheet in show_stylesheets() %}
-
+
{% endfor %}
{% endblock %}
diff --git a/templates/stdgrid.html.twig b/templates/stdgrid.html.twig
index 00b0567f2a..710555b8ca 100644
--- a/templates/stdgrid.html.twig
+++ b/templates/stdgrid.html.twig
@@ -2,8 +2,6 @@
{% block stylesheets %}
{{ parent() }}
- {{ block("stylesheets", "/left/view.html.twig") }}
- {{ block("stylesheets", "/right/view.html.twig") }}
{% endblock %}
{% block leftpanel %}