diff options
Diffstat (limited to 'src/components/organisms/layout')
| -rw-r--r-- | src/components/organisms/layout/comment.module.scss | 46 | ||||
| -rw-r--r-- | src/components/organisms/layout/summary.module.scss | 78 | ||||
| -rw-r--r-- | src/components/organisms/layout/summary.tsx | 8 |
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} |
