Created
April 30, 2024 15:16
-
-
Save jensgro/aacb7d941f68b1e8757627fbdbad662f to your computer and use it in GitHub Desktop.
Eine Art Reset-Normalisierung :-)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*, | |
::after, | |
::before { | |
box-sizing: border-box; | |
} | |
html { | |
font-size: 16px; | |
} | |
body { | |
font-size: 1rem; | |
font-family: system-ui, sans-serif; | |
-webkit-font-smoothing: antialiased; | |
line-height: 1.5; | |
} | |
/* ======================================================= */ | |
:where(html) { | |
-webkit-text-size-adjust: none; | |
color-scheme: dark light; | |
tab-size: 2; | |
} | |
:where(body) { | |
-webkit-font-smoothing: antialiased; | |
text-rendering: optimizeSpeed; | |
min-height: 100vh; | |
} | |
/* === Formulare === */ | |
:where(button) { | |
all: unset; | |
} | |
:where(input, button, textarea, select) { | |
font: inherit; | |
color: inherit; | |
} | |
:where(textarea) { | |
resize: vertical; | |
resize: block; | |
} | |
:where(button, label, select, summary, [role='button'], [role='option']) { | |
cursor: pointer; | |
} | |
:where(:disabled) { | |
cursor: not-allowed; | |
} | |
:where(label:has(> input:disabled), label:has(+ input:disabled)) { | |
cursor: not-allowed; | |
} | |
/* ========== */ | |
:where(a) { | |
color: currentColor; | |
text-underline-offset: 0.2ex; | |
} | |
/* | |
barrierefreies Entfernen der Marker, auch für Voice Over | |
https://matuzo.at/blog/2023/removing-list-styles-without-affecting-semantics | |
*/ | |
:where(ul, ol)[class], :where(ul, ol)[role="list"] { | |
list-style-type: ""; | |
padding-left: 0; | |
} | |
/* ==== Medien ==== */ | |
:where(img, svg, video, canvas, audio, iframe, embed, object) { | |
display: block; | |
} | |
:where(img, picture, svg, video) { | |
max-width: 100%; | |
height: auto; | |
} | |
/* SVG's without a fill attribute */ | |
:where(svg):where(:not([fill])) { | |
/* Remove fill and set stroke colour to the inherited font colour */ | |
stroke: currentColor; | |
fill: none; | |
/* Rounded stroke */ | |
stroke-linecap: round; | |
stroke-linejoin: round; | |
} | |
/* Set a size for SVG's without a width attribute */ | |
:where(svg):where(:not([width])) { | |
inline-size: 5rem; | |
} | |
/* ==== Headlines ======= */ | |
:where(h1, h2, h3, h4, h5, h6) { | |
text-wrap: balance; | |
overflow-wrap: break-word; /* auch für p??? */ | |
} | |
/* ================ */ | |
:where(hr) { | |
border: none; | |
border-block-start: 1px solid; | |
color: inherit; | |
block-size: 0; | |
overflow: visible; | |
} | |
/* ================ */ | |
:where(:focus-visible) { | |
outline: 3px solid CanvasText; | |
box-shadow: 0 0 0 5px Canvas; | |
outline-offset: 1px; | |
} | |
:where(:focus-visible, :target) { | |
scroll-margin-block: 8vh; | |
} | |
/* ===== .visually-hidden ===== */ | |
:where(.visually-hidden:not(:focus-within, :active)) { | |
clip-path: inset(50%) !important; | |
height: 1px !important; | |
width: 1px !important; | |
overflow: hidden !important; | |
position: absolute !important; | |
white-space: nowrap !important; | |
border: 0 !important; | |
} | |
/* ============ prefers-reduced-motion ======================= */ | |
@media (prefers-reduced-motion: no-preference) { | |
:where(html:focus-within) { | |
scroll-behavior: smooth; | |
} | |
} | |
/* | |
Remove decorative motion for users who don’t want them. [...] The one thing of note here is that these don’t set transitions and animations to none, rather they shorten the durations a super short interval. This way, they’re impossible to perceive, but they still run; browser events like transitionend will fire as normal and any code depending on those events won’t break. | |
https://keithjgrant.com/posts/2024/01/my-css-resets/ | |
*/ | |
@media (prefers-reduced-motion: reduce) { | |
*, | |
*::before, | |
*::after { | |
animation-duration: 0.01ms !important; | |
animation-iteration-count: 1 !important; | |
transition-duration: 0.01ms !important; | |
scroll-behavior: auto !important; | |
} | |
} | |
/* ======================================================= */ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment