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/themes/default/_styles.scss | |
download | td-main.tar.gz td-main.tar.bz2 |
Diffstat (limited to 'app/assets/stylesheets/themes/default/_styles.scss')
-rw-r--r-- | app/assets/stylesheets/themes/default/_styles.scss | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/app/assets/stylesheets/themes/default/_styles.scss b/app/assets/stylesheets/themes/default/_styles.scss new file mode 100644 index 0000000..3a0a46d --- /dev/null +++ b/app/assets/stylesheets/themes/default/_styles.scss @@ -0,0 +1,247 @@ +// Commons Styles +:root { + // Typography + --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", + "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol", "Noto Color Emoji"; + --line-height: 1.5; + --font-weight: 400; + --font-size: 16px; + + // Responsive typography + @if $enable-responsive-typography { + @if map-get($breakpoints, "sm") { + @media (min-width: map-get($breakpoints, "sm")) { + --font-size: 17px; + } + } + + @if map-get($breakpoints, "md") { + @media (min-width: map-get($breakpoints, "md")) { + --font-size: 18px; + } + } + + @if map-get($breakpoints, "lg") { + @media (min-width: map-get($breakpoints, "lg")) { + --font-size: 19px; + } + } + + @if map-get($breakpoints, "xl") { + @media (min-width: map-get($breakpoints, "xl")) { + --font-size: 20px; + } + } + } + + // Borders + --border-radius: 0.25rem; + --border-width: 1px; + --outline-width: 3px; + + // Spacings + --spacing: 1rem; + + // Spacings for typography elements + --typography-spacing-vertical: 1.5rem; + + // Spacings for body > header, body > main, body > footer, section, article + --block-spacing-vertical: calc(var(--spacing) * 2); + --block-spacing-horizontal: var(--spacing); + + @if ($enable-classes and $enable-grid) { + --grid-spacing-vertical: 0; + --grid-spacing-horizontal: var(--spacing); + } + + // Spacings for form elements and button + --form-element-spacing-vertical: 0.75rem; + --form-element-spacing-horizontal: 1rem; + + // Spacings for nav component + --nav-element-spacing-vertical: 1rem; + --nav-element-spacing-horizontal: 0.5rem; + --nav-link-spacing-vertical: 0.5rem; + --nav-link-spacing-horizontal: 0.5rem; + + // Font weight for form labels & fieldsets legend + --form-label-font-weight: var(--font-weight); + + // Transitions + --transition: 0.2s ease-in-out; + + // Modal (<dialog>) + --modal-overlay-backdrop-filter: blur(0.25rem); +} + +// Responsives spacings +@if $enable-responsive-spacings { + // Sectioning + #{$semantic-root-element} > header, + #{$semantic-root-element} > main, + #{$semantic-root-element} > footer, + section { + @if map-get($breakpoints, "sm") { + @media (min-width: map-get($breakpoints, "sm")) { + --block-spacing-vertical: calc(var(--spacing) * 2.5); + } + } + + @if map-get($breakpoints, "md") { + @media (min-width: map-get($breakpoints, "md")) { + --block-spacing-vertical: calc(var(--spacing) * 3); + } + } + + @if map-get($breakpoints, "lg") { + @media (min-width: map-get($breakpoints, "lg")) { + --block-spacing-vertical: calc(var(--spacing) * 3.5); + } + } + + @if map-get($breakpoints, "xl") { + @media (min-width: map-get($breakpoints, "xl")) { + --block-spacing-vertical: calc(var(--spacing) * 4); + } + } + } + + // Card (<article>) + article { + @if map-get($breakpoints, "sm") { + @media (min-width: map-get($breakpoints, "sm")) { + --block-spacing-horizontal: calc(var(--spacing) * 1.25); + } + } + + @if map-get($breakpoints, "md") { + @media (min-width: map-get($breakpoints, "md")) { + --block-spacing-horizontal: calc(var(--spacing) * 1.5); + } + } + + @if map-get($breakpoints, "lg") { + @media (min-width: map-get($breakpoints, "lg")) { + --block-spacing-horizontal: calc(var(--spacing) * 1.75); + } + } + + @if map-get($breakpoints, "xl") { + @media (min-width: map-get($breakpoints, "xl")) { + --block-spacing-horizontal: calc(var(--spacing) * 2); + } + } + } + + // Modal + dialog > article { + + --block-spacing-vertical: calc(var(--spacing) * 2); + --block-spacing-horizontal: var(--spacing); + + @if map-get($breakpoints, "sm") { + @media (min-width: map-get($breakpoints, "sm")) { + --block-spacing-vertical: calc(var(--spacing) * 2.5); + --block-spacing-horizontal: calc(var(--spacing) * 1.25); + } + } + + @if map-get($breakpoints, "md") { + @media (min-width: map-get($breakpoints, "md")) { + --block-spacing-vertical: calc(var(--spacing) * 3); + --block-spacing-horizontal: calc(var(--spacing) * 1.5); + } + } + } +} + +// Link +a { + --text-decoration: none; + + // Secondary & Contrast + @if $enable-classes { + &.secondary, + &.contrast { + --text-decoration: underline; + } + } +} + +// Small +small { + --font-size: 0.875em; +} + +// Headings +h1, +h2, +h3, +h4, +h5, +h6 { + --font-weight: 700; +} + +h1 { + --font-size: 2rem; + --typography-spacing-vertical: 3rem; +} + +h2 { + --font-size: 1.75rem; + --typography-spacing-vertical: 2.625rem; +} + +h3 { + --font-size: 1.5rem; + --typography-spacing-vertical: 2.25rem; +} + +h4 { + --font-size: 1.25rem; + --typography-spacing-vertical: 1.874rem; +} + +h5 { + --font-size: 1.125rem; + --typography-spacing-vertical: 1.6875rem; +} + +// Forms elements +[type="checkbox"], +[type="radio"] { + --border-width: 2px; +} + +[type="checkbox"][role="switch"] { + --border-width: 3px; +} + +// Table +thead, +tfoot { + th, + td { + --border-width: 3px; + } +} + +:not(thead, tfoot) > * > td { + --font-size: 0.875em; +} + +// Code +pre, +code, +kbd, +samp { + --font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", + "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} + +kbd { + --font-weight: bolder; +} |