diff --git a/src/App.tsx b/src/App.tsx index 239f419..aeaa96f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,6 @@ -import { Outlet } from "react-router"; +import "./styles/reset.css"; import "./styles/App.css"; +import { Outlet } from "react-router"; import { Link } from "react-router"; function App() { diff --git a/src/styles/App.css b/src/styles/App.css index e69de29..aec3698 100644 --- a/src/styles/App.css +++ b/src/styles/App.css @@ -0,0 +1,46 @@ +html { + font-family: Arial, sans-serif; +} + +#root { + min-height: 100vh; + display: flex; +} + +header { + flex-basis: 250px; + padding: 1rem; + border-right: 3px solid #ccc; + background-color: #eee; +} + +main { + flex: 1; + padding: 1rem; +} + +footer { + padding-block: 0.5rem; + position: absolute; + bottom: 0; + left: 0; + right: 0; + + display: flex; + justify-content: center; +} + +a, +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + color: inherit; +} + +ul { + list-style: none; + padding: 0; +} diff --git a/src/styles/reset.css b/src/styles/reset.css new file mode 100644 index 0000000..7d8eca9 --- /dev/null +++ b/src/styles/reset.css @@ -0,0 +1,141 @@ +@layer { + *, + *::before, + *::after { + box-sizing: border-box; + background-repeat: no-repeat; + } + + * { + padding: 0; + margin: 0; + } + + html { + -webkit-text-size-adjust: none; + text-size-adjust: none; + line-height: 1.5; + -webkit-font-smoothing: antialiased; + block-size: 100%; + } + + body { + min-block-size: 100%; + } + + img, + iframe, + audio, + video, + canvas { + display: block; + max-inline-size: 100%; + block-size: auto; + } + + svg { + max-inline-size: 100%; + } + + svg:not([fill]) { + fill: currentColor; + } + + input, + button, + textarea, + select { + font: inherit; + } + + textarea { + resize: vertical; + } + + fieldset, + iframe { + border: none; + } + + p, + h1, + h2, + h3, + h4, + h5, + h6 { + overflow-wrap: break-word; + } + + p { + text-wrap: pretty; + font-variant-numeric: proportional-nums; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + font-variant-numeric: lining-nums; + } + + p, + blockquote, + q, + figcaption, + li { + hanging-punctuation: first allow-end last; + } + + input, + label, + button, + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.1; + } + + math, + time, + table { + font-variant-numeric: tabular-nums lining-nums slashed-zero; + } + + code { + font-variant-numeric: slashed-zero; + } + + table { + border-collapse: collapse; + } + + abbr { + font-variant-caps: all-small-caps; + text-decoration: none; + + &[title] { + cursor: help; + text-decoration: underline dotted; + } + } + + sup, + sub { + line-height: 0; + } + + :disabled { + opacity: 0.8; + cursor: not-allowed; + } + + :focus-visible { + outline-offset: 0.2rem; + } +}