aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/organisms')
-rw-r--r--src/components/organisms/layout/comment.module.scss46
-rw-r--r--src/components/organisms/layout/summary.module.scss78
-rw-r--r--src/components/organisms/layout/summary.tsx8
3 files changed, 127 insertions, 5 deletions
diff --git a/src/components/organisms/layout/comment.module.scss b/src/components/organisms/layout/comment.module.scss
index f645354..bf8aada 100644
--- a/src/components/organisms/layout/comment.module.scss
+++ b/src/components/organisms/layout/comment.module.scss
@@ -1,11 +1,13 @@
@use "../../../styles/abstracts/functions" as fun;
@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
padding: var(--spacing-md);
background: var(--color-bg);
border: fun.convert-px(1) solid var(--color-border);
- box-shadow: fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-shadow-light),
+ box-shadow:
+ fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-shadow-light),
fun.convert-px(4) fun.convert-px(4) fun.convert-px(3) fun.convert-px(-2)
var(--color-shadow);
@@ -50,7 +52,8 @@
height: fun.convert-px(85);
position: relative;
border-radius: fun.convert-px(3);
- box-shadow: 0 0 0 fun.convert-px(1) var(--color-shadow-light),
+ box-shadow:
+ 0 0 0 fun.convert-px(1) var(--color-shadow-light),
fun.convert-px(2) fun.convert-px(2) 0 fun.convert-px(1)
var(--color-shadow);
@@ -80,6 +83,45 @@
.body {
overflow-wrap: break-word;
+
+ :global {
+ a {
+ @extend %link;
+
+ &[hreflang],
+ &.download,
+ &.external {
+ @extend %link-with-icon;
+ }
+
+ &[hreflang] {
+ @extend %link-with-lang;
+ }
+
+ &[hreflang]:not(.download, .external) {
+ --is-icon-hidden: "";
+ }
+
+ &.download {
+ @extend %download-link;
+ }
+
+ &.external {
+ @extend %external-link;
+ }
+
+ &.download,
+ &.external {
+ &:not([hreflang]) {
+ --is-lang-hidden: "";
+ }
+ }
+
+ &.external.download {
+ @extend %external-download-link;
+ }
+ }
+ }
}
.footer {
diff --git a/src/components/organisms/layout/summary.module.scss b/src/components/organisms/layout/summary.module.scss
index 5052f73..b6cb4f4 100644
--- a/src/components/organisms/layout/summary.module.scss
+++ b/src/components/organisms/layout/summary.module.scss
@@ -1,5 +1,6 @@
@use "../../../styles/abstracts/functions" as fun;
@use "../../../styles/abstracts/mixins" as mix;
+@use "../../../styles/abstracts/placeholders";
.wrapper {
display: grid;
@@ -118,3 +119,80 @@
}
}
}
+
+.intro {
+ :global {
+ a {
+ @extend %link;
+
+ &[hreflang],
+ &.download,
+ &.external {
+ @extend %link-with-icon;
+ }
+
+ &[hreflang] {
+ @extend %link-with-lang;
+ }
+
+ &[hreflang]:not(.download, .external) {
+ --is-icon-hidden: "";
+ }
+
+ &.download {
+ @extend %download-link;
+ }
+
+ &.external {
+ @extend %external-link;
+ }
+
+ &.download,
+ &.external {
+ &:not([hreflang]) {
+ --is-lang-hidden: "";
+ }
+ }
+
+ &.external.download {
+ @extend %external-download-link;
+ }
+ }
+ }
+}
+
+:global([data-theme="light"]) {
+ :local {
+ .intro {
+ :global {
+ a {
+ &.download {
+ @extend %light-download-link;
+ }
+
+ &.external {
+ @extend %light-external-link;
+ }
+ }
+ }
+ }
+ }
+}
+
+:global([data-theme="dark"]) {
+ :local {
+ .intro {
+ :global {
+ a {
+ &.download {
+ @extend %dark-download-link;
+ }
+
+ &.external {
+ @extend %dark-external-link;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/components/organisms/layout/summary.tsx b/src/components/organisms/layout/summary.tsx
index d66af75..e21e4c7 100644
--- a/src/components/organisms/layout/summary.tsx
+++ b/src/components/organisms/layout/summary.tsx
@@ -117,9 +117,11 @@ export const Summary: FC<SummaryProps> = ({
</Link>
</header>
<div className={styles.body}>
- {/* eslint-disable-next-line react/no-danger -- Not safe but intro can
- * contains links or formatting so we need it. */}
- <div dangerouslySetInnerHTML={{ __html: intro }} />
+ <div
+ className={styles.intro}
+ // eslint-disable-next-line react/no-danger
+ dangerouslySetInnerHTML={{ __html: intro }}
+ />
<ButtonLink className={styles['read-more']} to={url}>
<>
{readMore}