diff options
author | sadbeast <sadbeast@sadbeast.com> | 2024-01-31 17:47:56 -0800 |
---|---|---|
committer | sadbeast <sadbeast@sadbeast.com> | 2024-01-31 17:47:56 -0800 |
commit | 332ec93366315fa1ed7b4acd7a3407c96e8ddfa7 (patch) | |
tree | 6ae553317f12a7a6a29c849c8805ffab96436dc2 /app/assets/stylesheets/content/_typography.scss | |
download | td-332ec93366315fa1ed7b4acd7a3407c96e8ddfa7.tar.gz td-332ec93366315fa1ed7b4acd7a3407c96e8ddfa7.tar.bz2 |
Diffstat (limited to 'app/assets/stylesheets/content/_typography.scss')
-rw-r--r-- | app/assets/stylesheets/content/_typography.scss | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/app/assets/stylesheets/content/_typography.scss b/app/assets/stylesheets/content/_typography.scss new file mode 100644 index 0000000..a9ed71b --- /dev/null +++ b/app/assets/stylesheets/content/_typography.scss @@ -0,0 +1,264 @@ +/** + * Typography + */ + +// Reboot based on : +// - normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css +// - sanitize.css v13.0.0 | CC0 1.0 Universal | github.com/csstools/sanitize.css +// –––––––––––––––––––– + +// Add the correct font weight in Chrome, Edge, and Safari +b, +strong { + font-weight: bolder; +} + +// Prevent `sub` and `sup` elements from affecting the line height in all browsers +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} + +// Pico +// –––––––––––––––––––– + +address, +blockquote, +dl, +figure, +form, +ol, +p, +pre, +table, +ul { + margin-top: 0; + margin-bottom: var(--typography-spacing-vertical); + color: var(--color); + font-style: normal; + font-weight: var(--font-weight); + font-size: var(--font-size); +} + +// Links +// 1. Remove the gray background on active links in IE 10 +a, +[role="link"] { + --color: var(--primary); + --background-color: transparent; + outline: none; + background-color: var(--background-color); // 1 + color: var(--color); + text-decoration: var(--text-decoration); + + @if $enable-transitions { + transition: background-color var(--transition), color var(--transition), + text-decoration var(--transition), box-shadow var(--transition); + } + + &:is([aria-current], :hover, :active, :focus) { + --color: var(--primary-hover); + --text-decoration: underline; + } + + &:focus { + --background-color: var(--primary-focus); + } + + @if $enable-classes { + // Secondary + &.secondary { + --color: var(--secondary); + + &:is([aria-current], :hover, :active, :focus) { + --color: var(--secondary-hover); + } + + &:focus { + --background-color: var(--secondary-focus); + } + } + + // Contrast + &.contrast { + --color: var(--contrast); + + &:is([aria-current], :hover, :active, :focus) { + --color: var(--contrast-hover); + } + + &:focus { + --background-color: var(--contrast-focus); + } + } + } +} + +// Headings +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: var(--typography-spacing-vertical); + color: var(--color); + font-weight: var(--font-weight); + font-size: var(--font-size); + font-family: var(--font-family); +} + +h1 { + --color: var(--h1-color); +} +h2 { + --color: var(--h2-color); +} +h3 { + --color: var(--h3-color); +} +h4 { + --color: var(--h4-color); +} +h5 { + --color: var(--h5-color); +} +h6 { + --color: var(--h6-color); +} + +// Margin-top for headings after a typography block +:where(address, blockquote, dl, figure, form, ol, p, pre, table, ul) { + ~ :is(h1, h2, h3, h4, h5, h6) { + margin-top: var(--typography-spacing-vertical); + } +} + +// Heading group +@if $enable-classes == false { + hgroup { + margin-bottom: var(--typography-spacing-vertical); + + > * { + margin-bottom: 0; + } + + > *:last-child { + --color: var(--muted-color); + --font-weight: unset; + font-size: 1rem; + font-family: unset; + } + } +} + +@if $enable-classes { + hgroup, + .headings { + margin-bottom: var(--typography-spacing-vertical); + + > * { + margin-bottom: 0; + } + + > *:last-child { + --color: var(--muted-color); + --font-weight: unset; + font-size: 1rem; + font-family: unset; + } + } +} + +// Paragraphs +p { + margin-bottom: var(--typography-spacing-vertical); +} + +// Small +small { + font-size: var(--font-size); +} + +// Lists +:where(dl, ol, ul) { + padding-right: 0; + padding-left: var(--spacing); + padding-inline-start: var(--spacing); + padding-inline-end: 0; + + li { + margin-bottom: calc(var(--typography-spacing-vertical) * 0.25); + } +} + +// Margin-top for nested lists +// 1. Remove the margin on nested lists in Chrome, Edge, IE, and Safari +:where(dl, ol, ul) { + :is(dl, ol, ul) { + margin: 0; // 1 + margin-top: calc(var(--typography-spacing-vertical) * 0.25); + } +} + +ul li { + list-style: square; +} + +// Highlighted text +mark { + padding: 0.125rem 0.25rem; + background-color: var(--mark-background-color); + color: var(--mark-color); + vertical-align: baseline; +} + +// Blockquote +blockquote { + display: block; + margin: var(--typography-spacing-vertical) 0; + padding: var(--spacing); + border-right: none; + border-left: 0.25rem solid var(--blockquote-border-color); + border-inline-start: 0.25rem solid var(--blockquote-border-color); + border-inline-end: none; + + footer { + margin-top: calc(var(--typography-spacing-vertical) * 0.5); + color: var(--blockquote-footer-color); + } +} + +// Abbreviations +// 1. Remove underline decoration in Chrome, Edge, IE, Opera, and Safari +abbr[title] { + border-bottom: 1px dotted; + text-decoration: none; // 1 + cursor: help; +} + +// Ins +ins { + color: var(--ins-color); + text-decoration: none; +} + +// del +del { + color: var(--del-color); +} + +// selection +::selection { + background-color: var(--primary-focus); +} |