diff --git a/Justfile b/Justfile
index da38545..3ff23e3 100644
--- a/Justfile
+++ b/Justfile
@@ -14,7 +14,8 @@ new type name:
zsh ./scripts/new.sh $type $name
link:
- zsh ./scripts/link.sh
+ echo "linking is disabled"
+ # zsh ./scripts/link.sh
zip:
zsh ./scripts/zip.sh
diff --git a/assignments/a2/css/clean.css b/assignments/a2/css/clean.css
new file mode 100644
index 0000000..1c4fa14
--- /dev/null
+++ b/assignments/a2/css/clean.css
@@ -0,0 +1,28 @@
+html,
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p {
+ font-family: sans-serif;
+ margin: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p {
+ font-weight: normal;
+ font-size: 1em;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
diff --git a/assignments/a2/css/index.css b/assignments/a2/css/index.css
new file mode 100644
index 0000000..f4178b6
--- /dev/null
+++ b/assignments/a2/css/index.css
@@ -0,0 +1,175 @@
+@import './clean.css';
+@import url('https://fonts.googleapis.com/css2?family=Protest+Strike&display=swap');
+
+header {
+ color: white;
+ background-color: #0d2b43;
+
+ & > nav {
+ display: flex;
+ justify-content: end;
+ align-items: center;
+ gap: 1rem;
+ padding: 1rem;
+
+ & > a:hover {
+ color: lightgray;
+ }
+ }
+
+ & > div:has(img) {
+ width: 100%;
+ display: flex;
+ justify-content: end;
+ padding: 1rem 0;
+
+ & > div {
+ height: 9rem;
+ width: 50%;
+ overflow: hidden;
+
+ position: relative;
+
+ & > img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ object-position: left top;
+ }
+
+ & > div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+
+ display: flex;
+ justify-content: space-between;
+
+ & > div {
+ /* background-color: #0d2b43; */
+ border-right: 1rem solid #0d2b43;
+ flex-grow: 1;
+
+ &:nth-child(4) {
+ flex-grow: 1.5;
+ }
+
+ &:nth-child(5) {
+ flex-grow: 2;
+ }
+
+ &:last-child {
+ flex-grow: 4;
+ border-right: 0;
+ }
+ }
+ }
+ }
+ }
+
+ & > div:has(h1) {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ padding: 1rem;
+
+ & > h1 {
+ font-size: 3rem;
+ font-family: 'Protest Strike', sans-serif;
+ }
+
+ & > h2 {
+ font-size: 1.5rem;
+ }
+
+ & > p {
+ font-size: 1rem;
+ margin-top: 0.5rem;
+ }
+ }
+}
+
+main {
+ width: 100%;
+
+ & > section:has(> div > img) {
+ max-width: 100%;
+ display: flex;
+ gap: 1rem;
+ padding: 1rem;
+
+ flex-wrap: wrap;
+
+ @media (min-width: 768px) {
+ flex-wrap: nowrap;
+ max-height: 80vh;
+ }
+
+ img {
+ object-fit: cover;
+ object-position: center 25%;
+ border-radius: 1rem;
+ }
+
+ & > :first-child:nth-last-child(n + 2) {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+
+ & > img {
+ height: 50%;
+ width: 100%;
+ }
+ }
+
+ & > :nth-child(2) {
+ flex-grow: 3;
+
+ & > img {
+ height: 100%;
+ width: 100%;
+ }
+ }
+ }
+
+ & > section:has(> div > h3) {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ padding: 0 2rem 2rem 2rem;
+
+ & > div {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ padding: 1rem;
+
+ & > h3 {
+ font-size: 3rem;
+ font-family: 'Protest Strike', sans-serif;
+ }
+
+ & > h4 {
+ font-size: 1.5rem;
+ }
+
+ & > p {
+ font-size: 1rem;
+ margin-top: 0.5rem;
+ line-height: 1.5rem;
+ }
+ }
+ }
+}
+
+footer {
+ background-color: #c5f36c;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 2rem;
+}
diff --git a/assignments/a2/img/churro1.jpg b/assignments/a2/img/churro1.jpg
new file mode 100644
index 0000000..7ba3230
Binary files /dev/null and b/assignments/a2/img/churro1.jpg differ
diff --git a/assignments/a2/img/churro2.jpg b/assignments/a2/img/churro2.jpg
new file mode 100755
index 0000000..25bf9f0
Binary files /dev/null and b/assignments/a2/img/churro2.jpg differ
diff --git a/assignments/a2/img/churro3.jpg b/assignments/a2/img/churro3.jpg
new file mode 100644
index 0000000..591f7b6
Binary files /dev/null and b/assignments/a2/img/churro3.jpg differ
diff --git a/assignments/a2/img/longdog.jpg b/assignments/a2/img/longdog.jpg
new file mode 100644
index 0000000..d9c1e68
Binary files /dev/null and b/assignments/a2/img/longdog.jpg differ
diff --git a/assignments/a2/index.html b/assignments/a2/index.html
new file mode 100644
index 0000000..1e214e5
--- /dev/null
+++ b/assignments/a2/index.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+ assignment a2
+
+
+
+
+
+
+
+
+
+
churro again
+
more cool pictures of churro
+
+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Asperiores, alias beatae error
+ totam maiores animi, iure obcaecati maxime officiis facere repudiandae iusto. Aperiam
+ facere tempora laudantium. Suscipit impedit magnam labore. Lorem ipsum, dolor sit amet
+ consectetur adipisicing elit. Iure, vitae. Tempora perferendis exercitationem eligendi
+ id at eveniet libero consequatur, sint molestias, recusandae suscipit ducimus facilis
+ tempore, ratione atque repellendus fugit!
+
+
+
+
+
churro again part 2
+
more cool pictures of churro
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit veniam quam, quisquam
+ sit quod corrupti quas! Nesciunt velit exercitationem, quibusdam blanditiis totam,
+ nostrum a iure sapiente, voluptates ab harum inventore! Lorem ipsum dolor sit amet
+ consectetur adipisicing elit. Laboriosam eaque maiores recusandae dolores adipisci odio
+ magnam vel qui. Error eligendi consequatur obcaecati ducimus pariatur provident fuga
+ blanditiis quam quos quod.
+
+
+
+
+
+
+
+
diff --git a/index.ts b/index.ts
index cf763b0..2ede66c 100644
--- a/index.ts
+++ b/index.ts
@@ -5,6 +5,7 @@ import { type Dirent } from 'node:fs';
const assignmentDir = './assignments';
const outDir = './.out';
+
const ENABLE_TRANSPILE = false;
const targets = browserslistToTargets(browserslist('last 2 versions, > 0.1%'));
diff --git a/practices/24-10-08/css/common.css b/practices/24-10-08/css/common.css
new file mode 100644
index 0000000..4dd1e35
--- /dev/null
+++ b/practices/24-10-08/css/common.css
@@ -0,0 +1,673 @@
+*,
+:before,
+:after {
+ box-sizing: border-box;
+ border: 0 solid #e5e7eb;
+}
+
+:before,
+:after {
+ --tw-content: '';
+}
+
+html,
+:host {
+ -webkit-text-size-adjust: 100%;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ font-feature-settings: normal;
+ font-variation-settings: normal;
+ -webkit-tap-highlight-color: transparent;
+ font-family:
+ ui-sans-serif,
+ system-ui,
+ sans-serif,
+ Apple Color Emoji,
+ Segoe UI Emoji,
+ Segoe UI Symbol,
+ Noto Color Emoji;
+ line-height: 1.5;
+}
+
+body {
+ line-height: inherit;
+ margin: 0;
+}
+
+hr {
+ color: inherit;
+ border-top-width: 1px;
+ height: 0;
+}
+
+abbr:where([title]) {
+ text-decoration: underline dotted;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+code,
+kbd,
+samp,
+pre {
+ font-feature-settings: normal;
+ font-variation-settings: normal;
+ font-family:
+ ui-monospace,
+ SFMono-Regular,
+ Menlo,
+ Monaco,
+ Consolas,
+ Liberation Mono,
+ Courier New,
+ monospace;
+ font-size: 1em;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ vertical-align: baseline;
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+table {
+ text-indent: 0;
+ border-color: inherit;
+ border-collapse: collapse;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-feature-settings: inherit;
+ font-variation-settings: inherit;
+ font-family: inherit;
+ font-size: 100%;
+ font-weight: inherit;
+ line-height: inherit;
+ letter-spacing: inherit;
+ color: inherit;
+ margin: 0;
+ padding: 0;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+input:where([type='button']),
+input:where([type='reset']),
+input:where([type='submit']) {
+ -webkit-appearance: button;
+ background-color: #0000;
+ background-image: none;
+}
+
+:-moz-focusring {
+ outline: auto;
+}
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+progress {
+ vertical-align: baseline;
+}
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type='search'] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
+}
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ font: inherit;
+}
+
+summary {
+ display: list-item;
+}
+
+blockquote,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+figure,
+p,
+pre {
+ margin: 0;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+legend {
+ padding: 0;
+}
+
+ol,
+ul,
+menu {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+dialog {
+ padding: 0;
+}
+
+textarea {
+ resize: vertical;
+}
+
+input::-moz-placeholder,
+textarea::-moz-placeholder {
+ opacity: 1;
+ color: #9ca3af;
+}
+
+input::placeholder,
+textarea::placeholder {
+ opacity: 1;
+ color: #9ca3af;
+}
+
+button,
+[role='button'] {
+ cursor: pointer;
+}
+
+:disabled {
+ cursor: default;
+}
+
+img,
+svg,
+video,
+canvas,
+audio,
+iframe,
+embed,
+object {
+ vertical-align: middle;
+ display: block;
+}
+
+img,
+video {
+ max-width: 100%;
+ height: auto;
+}
+
+[hidden] {
+ display: none;
+}
+
+*,
+:before,
+:after,
+::backdrop {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: #3b82f680;
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}
+
+:root {
+ --color-inherit: inherit;
+ --color-current: currentColor;
+ --color-transparent: transparent;
+ --color-black: #000;
+ --color-white: #fff;
+ --color-slate-50: #f8fafc;
+ --color-slate-100: #f1f5f9;
+ --color-slate-200: #e2e8f0;
+ --color-slate-300: #cbd5e1;
+ --color-slate-400: #94a3b8;
+ --color-slate-500: #64748b;
+ --color-slate-600: #475569;
+ --color-slate-700: #334155;
+ --color-slate-800: #1e293b;
+ --color-slate-900: #0f172a;
+ --color-slate-950: #020617;
+ --color-gray-50: #f9fafb;
+ --color-gray-100: #f3f4f6;
+ --color-gray-200: #e5e7eb;
+ --color-gray-300: #d1d5db;
+ --color-gray-400: #9ca3af;
+ --color-gray-500: #6b7280;
+ --color-gray-600: #4b5563;
+ --color-gray-700: #374151;
+ --color-gray-800: #1f2937;
+ --color-gray-900: #111827;
+ --color-gray-950: #030712;
+ --color-zinc-50: #fafafa;
+ --color-zinc-100: #f4f4f5;
+ --color-zinc-200: #e4e4e7;
+ --color-zinc-300: #d4d4d8;
+ --color-zinc-400: #a1a1aa;
+ --color-zinc-500: #71717a;
+ --color-zinc-600: #52525b;
+ --color-zinc-700: #3f3f46;
+ --color-zinc-800: #27272a;
+ --color-zinc-900: #18181b;
+ --color-zinc-950: #09090b;
+ --color-neutral-50: #fafafa;
+ --color-neutral-100: #f5f5f5;
+ --color-neutral-200: #e5e5e5;
+ --color-neutral-300: #d4d4d4;
+ --color-neutral-400: #a3a3a3;
+ --color-neutral-500: #737373;
+ --color-neutral-600: #525252;
+ --color-neutral-700: #404040;
+ --color-neutral-800: #262626;
+ --color-neutral-900: #171717;
+ --color-neutral-950: #0a0a0a;
+ --color-stone-50: #fafaf9;
+ --color-stone-100: #f5f5f4;
+ --color-stone-200: #e7e5e4;
+ --color-stone-300: #d6d3d1;
+ --color-stone-400: #a8a29e;
+ --color-stone-500: #78716c;
+ --color-stone-600: #57534e;
+ --color-stone-700: #44403c;
+ --color-stone-800: #292524;
+ --color-stone-900: #1c1917;
+ --color-stone-950: #0c0a09;
+ --color-red-50: #fef2f2;
+ --color-red-100: #fee2e2;
+ --color-red-200: #fecaca;
+ --color-red-300: #fca5a5;
+ --color-red-400: #f87171;
+ --color-red-500: #ef4444;
+ --color-red-600: #dc2626;
+ --color-red-700: #b91c1c;
+ --color-red-800: #991b1b;
+ --color-red-900: #7f1d1d;
+ --color-red-950: #450a0a;
+ --color-orange-50: #fff7ed;
+ --color-orange-100: #ffedd5;
+ --color-orange-200: #fed7aa;
+ --color-orange-300: #fdba74;
+ --color-orange-400: #fb923c;
+ --color-orange-500: #f97316;
+ --color-orange-600: #ea580c;
+ --color-orange-700: #c2410c;
+ --color-orange-800: #9a3412;
+ --color-orange-900: #7c2d12;
+ --color-orange-950: #431407;
+ --color-amber-50: #fffbeb;
+ --color-amber-100: #fef3c7;
+ --color-amber-200: #fde68a;
+ --color-amber-300: #fcd34d;
+ --color-amber-400: #fbbf24;
+ --color-amber-500: #f59e0b;
+ --color-amber-600: #d97706;
+ --color-amber-700: #b45309;
+ --color-amber-800: #92400e;
+ --color-amber-900: #78350f;
+ --color-amber-950: #451a03;
+ --color-yellow-50: #fefce8;
+ --color-yellow-100: #fef9c3;
+ --color-yellow-200: #fef08a;
+ --color-yellow-300: #fde047;
+ --color-yellow-400: #facc15;
+ --color-yellow-500: #eab308;
+ --color-yellow-600: #ca8a04;
+ --color-yellow-700: #a16207;
+ --color-yellow-800: #854d0e;
+ --color-yellow-900: #713f12;
+ --color-yellow-950: #422006;
+ --color-lime-50: #f7fee7;
+ --color-lime-100: #ecfccb;
+ --color-lime-200: #d9f99d;
+ --color-lime-300: #bef264;
+ --color-lime-400: #a3e635;
+ --color-lime-500: #84cc16;
+ --color-lime-600: #65a30d;
+ --color-lime-700: #4d7c0f;
+ --color-lime-800: #3f6212;
+ --color-lime-900: #365314;
+ --color-lime-950: #1a2e05;
+ --color-green-50: #f0fdf4;
+ --color-green-100: #dcfce7;
+ --color-green-200: #bbf7d0;
+ --color-green-300: #86efac;
+ --color-green-400: #4ade80;
+ --color-green-500: #22c55e;
+ --color-green-600: #16a34a;
+ --color-green-700: #15803d;
+ --color-green-800: #166534;
+ --color-green-900: #14532d;
+ --color-green-950: #052e16;
+ --color-emerald-50: #ecfdf5;
+ --color-emerald-100: #d1fae5;
+ --color-emerald-200: #a7f3d0;
+ --color-emerald-300: #6ee7b7;
+ --color-emerald-400: #34d399;
+ --color-emerald-500: #10b981;
+ --color-emerald-600: #059669;
+ --color-emerald-700: #047857;
+ --color-emerald-800: #065f46;
+ --color-emerald-900: #064e3b;
+ --color-emerald-950: #022c22;
+ --color-teal-50: #f0fdfa;
+ --color-teal-100: #ccfbf1;
+ --color-teal-200: #99f6e4;
+ --color-teal-300: #5eead4;
+ --color-teal-400: #2dd4bf;
+ --color-teal-500: #14b8a6;
+ --color-teal-600: #0d9488;
+ --color-teal-700: #0f766e;
+ --color-teal-800: #115e59;
+ --color-teal-900: #134e4a;
+ --color-teal-950: #042f2e;
+ --color-cyan-50: #ecfeff;
+ --color-cyan-100: #cffafe;
+ --color-cyan-200: #a5f3fc;
+ --color-cyan-300: #67e8f9;
+ --color-cyan-400: #22d3ee;
+ --color-cyan-500: #06b6d4;
+ --color-cyan-600: #0891b2;
+ --color-cyan-700: #0e7490;
+ --color-cyan-800: #155e75;
+ --color-cyan-900: #164e63;
+ --color-cyan-950: #083344;
+ --color-sky-50: #f0f9ff;
+ --color-sky-100: #e0f2fe;
+ --color-sky-200: #bae6fd;
+ --color-sky-300: #7dd3fc;
+ --color-sky-400: #38bdf8;
+ --color-sky-500: #0ea5e9;
+ --color-sky-600: #0284c7;
+ --color-sky-700: #0369a1;
+ --color-sky-800: #075985;
+ --color-sky-900: #0c4a6e;
+ --color-sky-950: #082f49;
+ --color-blue-50: #eff6ff;
+ --color-blue-100: #dbeafe;
+ --color-blue-200: #bfdbfe;
+ --color-blue-300: #93c5fd;
+ --color-blue-400: #60a5fa;
+ --color-blue-500: #3b82f6;
+ --color-blue-600: #2563eb;
+ --color-blue-700: #1d4ed8;
+ --color-blue-800: #1e40af;
+ --color-blue-900: #1e3a8a;
+ --color-blue-950: #172554;
+ --color-indigo-50: #eef2ff;
+ --color-indigo-100: #e0e7ff;
+ --color-indigo-200: #c7d2fe;
+ --color-indigo-300: #a5b4fc;
+ --color-indigo-400: #818cf8;
+ --color-indigo-500: #6366f1;
+ --color-indigo-600: #4f46e5;
+ --color-indigo-700: #4338ca;
+ --color-indigo-800: #3730a3;
+ --color-indigo-900: #312e81;
+ --color-indigo-950: #1e1b4b;
+ --color-violet-50: #f5f3ff;
+ --color-violet-100: #ede9fe;
+ --color-violet-200: #ddd6fe;
+ --color-violet-300: #c4b5fd;
+ --color-violet-400: #a78bfa;
+ --color-violet-500: #8b5cf6;
+ --color-violet-600: #7c3aed;
+ --color-violet-700: #6d28d9;
+ --color-violet-800: #5b21b6;
+ --color-violet-900: #4c1d95;
+ --color-violet-950: #2e1065;
+ --color-purple-50: #faf5ff;
+ --color-purple-100: #f3e8ff;
+ --color-purple-200: #e9d5ff;
+ --color-purple-300: #d8b4fe;
+ --color-purple-400: #c084fc;
+ --color-purple-500: #a855f7;
+ --color-purple-600: #9333ea;
+ --color-purple-700: #7e22ce;
+ --color-purple-800: #6b21a8;
+ --color-purple-900: #581c87;
+ --color-purple-950: #3b0764;
+ --color-fuchsia-50: #fdf4ff;
+ --color-fuchsia-100: #fae8ff;
+ --color-fuchsia-200: #f5d0fe;
+ --color-fuchsia-300: #f0abfc;
+ --color-fuchsia-400: #e879f9;
+ --color-fuchsia-500: #d946ef;
+ --color-fuchsia-600: #c026d3;
+ --color-fuchsia-700: #a21caf;
+ --color-fuchsia-800: #86198f;
+ --color-fuchsia-900: #701a75;
+ --color-fuchsia-950: #4a044e;
+ --color-pink-50: #fdf2f8;
+ --color-pink-100: #fce7f3;
+ --color-pink-200: #fbcfe8;
+ --color-pink-300: #f9a8d4;
+ --color-pink-400: #f472b6;
+ --color-pink-500: #ec4899;
+ --color-pink-600: #db2777;
+ --color-pink-700: #be185d;
+ --color-pink-800: #9d174d;
+ --color-pink-900: #831843;
+ --color-pink-950: #500724;
+ --color-rose-50: #fff1f2;
+ --color-rose-100: #ffe4e6;
+ --color-rose-200: #fecdd3;
+ --color-rose-300: #fda4af;
+ --color-rose-400: #fb7185;
+ --color-rose-500: #f43f5e;
+ --color-rose-600: #e11d48;
+ --color-rose-700: #be123c;
+ --color-rose-800: #9f1239;
+ --color-rose-900: #881337;
+ --color-rose-950: #4c0519;
+ --shadow-sm: 0 1px 2px 0 #0000000d;
+ --shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
+ --shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
+ --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
+ --shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;
+ --shadow-2xl: 0 25px 50px -12px #00000040;
+ --shadow-inner: inset 0 2px 4px 0 #0000000d;
+ --shadow-none: none;
+ --space-0: 0px;
+ --space-1: 0.25rem;
+ --space-2: 0.5rem;
+ --space-3: 0.75rem;
+ --space-4: 1rem;
+ --space-5: 1.25rem;
+ --space-6: 1.5rem;
+ --space-7: 1.75rem;
+ --space-8: 2rem;
+ --space-9: 2.25rem;
+ --space-10: 2.5rem;
+ --space-11: 2.75rem;
+ --space-12: 3rem;
+ --space-14: 3.5rem;
+ --space-16: 4rem;
+ --space-20: 5rem;
+ --space-24: 6rem;
+ --space-28: 7rem;
+ --space-32: 8rem;
+ --space-36: 9rem;
+ --space-40: 10rem;
+ --space-44: 11rem;
+ --space-48: 12rem;
+ --space-52: 13rem;
+ --space-56: 14rem;
+ --space-60: 15rem;
+ --space-64: 16rem;
+ --space-72: 18rem;
+ --space-80: 20rem;
+ --space-96: 24rem;
+ --space-px: 1px;
+ --screen-sm: 640px;
+ --screen-md: 768px;
+ --screen-lg: 1024px;
+ --screen-xl: 1280px;
+ --screen-2xl: 1536px;
+ --w-0: 0px;
+ --w-1: 0.25rem;
+ --w-2: 0.5rem;
+ --w-3: 0.75rem;
+ --w-4: 1rem;
+ --w-5: 1.25rem;
+ --w-6: 1.5rem;
+ --w-7: 1.75rem;
+ --w-8: 2rem;
+ --w-9: 2.25rem;
+ --w-10: 2.5rem;
+ --w-11: 2.75rem;
+ --w-12: 3rem;
+ --w-14: 3.5rem;
+ --w-16: 4rem;
+ --w-20: 5rem;
+ --w-24: 6rem;
+ --w-28: 7rem;
+ --w-32: 8rem;
+ --w-36: 9rem;
+ --w-40: 10rem;
+ --w-44: 11rem;
+ --w-48: 12rem;
+ --w-52: 13rem;
+ --w-56: 14rem;
+ --w-60: 15rem;
+ --w-64: 16rem;
+ --w-72: 18rem;
+ --w-80: 20rem;
+ --w-96: 24rem;
+ --w-px: 1px;
+ --w-none: none;
+ --w-xs: 20rem;
+ --w-sm: 24rem;
+ --w-md: 28rem;
+ --w-lg: 32rem;
+ --w-xl: 36rem;
+ --w-2xl: 42rem;
+ --w-3xl: 48rem;
+ --w-4xl: 56rem;
+ --w-5xl: 64rem;
+ --w-6xl: 72rem;
+ --w-7xl: 80rem;
+ --w-full: 100%;
+ --w-min: min-content;
+ --w-max: max-content;
+ --w-fit: fit-content;
+ --w-prose: 65ch;
+ --w-screen-sm: 640px;
+ --w-screen-md: 768px;
+ --w-screen-lg: 1024px;
+ --w-screen-xl: 1280px;
+ --w-screen-2xl: 1536px;
+ --rounded-none: 0px;
+ --rounded-sm: 0.125rem;
+ --rounded: 0.25rem;
+ --rounded-md: 0.375rem;
+ --rounded-lg: 0.5rem;
+ --rounded-xl: 0.75rem;
+ --rounded-2xl: 1rem;
+ --rounded-3xl: 1.5rem;
+ --rounded-full: 9999px;
+}
diff --git a/practices/24-10-08/css/index.css b/practices/24-10-08/css/index.css
new file mode 100644
index 0000000..d562a5a
--- /dev/null
+++ b/practices/24-10-08/css/index.css
@@ -0,0 +1,39 @@
+@import 'common.css';
+
+html,
+body,
+main {
+ height: 100%;
+ width: 100%;
+}
+
+main {
+ display: grid;
+
+ padding: 1rem;
+ gap: 1rem;
+
+ grid-template: 1fr 3fr / 1fr 1fr;
+
+ & > * {
+ background-color: grey;
+ border-radius: 1rem;
+ }
+
+ & > section {
+ display: grid;
+ padding: 2rem;
+ gap: 1rem;
+
+ grid-template: 1fr 1fr / 1fr 1fr;
+
+ & > * {
+ background-color: lightgrey;
+ border-radius: 1rem;
+
+ &:nth-child(1) {
+ grid-column: 1/3;
+ }
+ }
+ }
+}
diff --git a/practices/24-10-08/index.html b/practices/24-10-08/index.html
new file mode 100644
index 0000000..8f49c44
--- /dev/null
+++ b/practices/24-10-08/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ 24-10-08 in class
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/practices/24-10-10/css/common.css b/practices/24-10-10/css/common.css
new file mode 100644
index 0000000..4dd1e35
--- /dev/null
+++ b/practices/24-10-10/css/common.css
@@ -0,0 +1,673 @@
+*,
+:before,
+:after {
+ box-sizing: border-box;
+ border: 0 solid #e5e7eb;
+}
+
+:before,
+:after {
+ --tw-content: '';
+}
+
+html,
+:host {
+ -webkit-text-size-adjust: 100%;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+ font-feature-settings: normal;
+ font-variation-settings: normal;
+ -webkit-tap-highlight-color: transparent;
+ font-family:
+ ui-sans-serif,
+ system-ui,
+ sans-serif,
+ Apple Color Emoji,
+ Segoe UI Emoji,
+ Segoe UI Symbol,
+ Noto Color Emoji;
+ line-height: 1.5;
+}
+
+body {
+ line-height: inherit;
+ margin: 0;
+}
+
+hr {
+ color: inherit;
+ border-top-width: 1px;
+ height: 0;
+}
+
+abbr:where([title]) {
+ text-decoration: underline dotted;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+code,
+kbd,
+samp,
+pre {
+ font-feature-settings: normal;
+ font-variation-settings: normal;
+ font-family:
+ ui-monospace,
+ SFMono-Regular,
+ Menlo,
+ Monaco,
+ Consolas,
+ Liberation Mono,
+ Courier New,
+ monospace;
+ font-size: 1em;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ vertical-align: baseline;
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+table {
+ text-indent: 0;
+ border-color: inherit;
+ border-collapse: collapse;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-feature-settings: inherit;
+ font-variation-settings: inherit;
+ font-family: inherit;
+ font-size: 100%;
+ font-weight: inherit;
+ line-height: inherit;
+ letter-spacing: inherit;
+ color: inherit;
+ margin: 0;
+ padding: 0;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+input:where([type='button']),
+input:where([type='reset']),
+input:where([type='submit']) {
+ -webkit-appearance: button;
+ background-color: #0000;
+ background-image: none;
+}
+
+:-moz-focusring {
+ outline: auto;
+}
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+progress {
+ vertical-align: baseline;
+}
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type='search'] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
+}
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ font: inherit;
+}
+
+summary {
+ display: list-item;
+}
+
+blockquote,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+figure,
+p,
+pre {
+ margin: 0;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+legend {
+ padding: 0;
+}
+
+ol,
+ul,
+menu {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+dialog {
+ padding: 0;
+}
+
+textarea {
+ resize: vertical;
+}
+
+input::-moz-placeholder,
+textarea::-moz-placeholder {
+ opacity: 1;
+ color: #9ca3af;
+}
+
+input::placeholder,
+textarea::placeholder {
+ opacity: 1;
+ color: #9ca3af;
+}
+
+button,
+[role='button'] {
+ cursor: pointer;
+}
+
+:disabled {
+ cursor: default;
+}
+
+img,
+svg,
+video,
+canvas,
+audio,
+iframe,
+embed,
+object {
+ vertical-align: middle;
+ display: block;
+}
+
+img,
+video {
+ max-width: 100%;
+ height: auto;
+}
+
+[hidden] {
+ display: none;
+}
+
+*,
+:before,
+:after,
+::backdrop {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: #3b82f680;
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}
+
+:root {
+ --color-inherit: inherit;
+ --color-current: currentColor;
+ --color-transparent: transparent;
+ --color-black: #000;
+ --color-white: #fff;
+ --color-slate-50: #f8fafc;
+ --color-slate-100: #f1f5f9;
+ --color-slate-200: #e2e8f0;
+ --color-slate-300: #cbd5e1;
+ --color-slate-400: #94a3b8;
+ --color-slate-500: #64748b;
+ --color-slate-600: #475569;
+ --color-slate-700: #334155;
+ --color-slate-800: #1e293b;
+ --color-slate-900: #0f172a;
+ --color-slate-950: #020617;
+ --color-gray-50: #f9fafb;
+ --color-gray-100: #f3f4f6;
+ --color-gray-200: #e5e7eb;
+ --color-gray-300: #d1d5db;
+ --color-gray-400: #9ca3af;
+ --color-gray-500: #6b7280;
+ --color-gray-600: #4b5563;
+ --color-gray-700: #374151;
+ --color-gray-800: #1f2937;
+ --color-gray-900: #111827;
+ --color-gray-950: #030712;
+ --color-zinc-50: #fafafa;
+ --color-zinc-100: #f4f4f5;
+ --color-zinc-200: #e4e4e7;
+ --color-zinc-300: #d4d4d8;
+ --color-zinc-400: #a1a1aa;
+ --color-zinc-500: #71717a;
+ --color-zinc-600: #52525b;
+ --color-zinc-700: #3f3f46;
+ --color-zinc-800: #27272a;
+ --color-zinc-900: #18181b;
+ --color-zinc-950: #09090b;
+ --color-neutral-50: #fafafa;
+ --color-neutral-100: #f5f5f5;
+ --color-neutral-200: #e5e5e5;
+ --color-neutral-300: #d4d4d4;
+ --color-neutral-400: #a3a3a3;
+ --color-neutral-500: #737373;
+ --color-neutral-600: #525252;
+ --color-neutral-700: #404040;
+ --color-neutral-800: #262626;
+ --color-neutral-900: #171717;
+ --color-neutral-950: #0a0a0a;
+ --color-stone-50: #fafaf9;
+ --color-stone-100: #f5f5f4;
+ --color-stone-200: #e7e5e4;
+ --color-stone-300: #d6d3d1;
+ --color-stone-400: #a8a29e;
+ --color-stone-500: #78716c;
+ --color-stone-600: #57534e;
+ --color-stone-700: #44403c;
+ --color-stone-800: #292524;
+ --color-stone-900: #1c1917;
+ --color-stone-950: #0c0a09;
+ --color-red-50: #fef2f2;
+ --color-red-100: #fee2e2;
+ --color-red-200: #fecaca;
+ --color-red-300: #fca5a5;
+ --color-red-400: #f87171;
+ --color-red-500: #ef4444;
+ --color-red-600: #dc2626;
+ --color-red-700: #b91c1c;
+ --color-red-800: #991b1b;
+ --color-red-900: #7f1d1d;
+ --color-red-950: #450a0a;
+ --color-orange-50: #fff7ed;
+ --color-orange-100: #ffedd5;
+ --color-orange-200: #fed7aa;
+ --color-orange-300: #fdba74;
+ --color-orange-400: #fb923c;
+ --color-orange-500: #f97316;
+ --color-orange-600: #ea580c;
+ --color-orange-700: #c2410c;
+ --color-orange-800: #9a3412;
+ --color-orange-900: #7c2d12;
+ --color-orange-950: #431407;
+ --color-amber-50: #fffbeb;
+ --color-amber-100: #fef3c7;
+ --color-amber-200: #fde68a;
+ --color-amber-300: #fcd34d;
+ --color-amber-400: #fbbf24;
+ --color-amber-500: #f59e0b;
+ --color-amber-600: #d97706;
+ --color-amber-700: #b45309;
+ --color-amber-800: #92400e;
+ --color-amber-900: #78350f;
+ --color-amber-950: #451a03;
+ --color-yellow-50: #fefce8;
+ --color-yellow-100: #fef9c3;
+ --color-yellow-200: #fef08a;
+ --color-yellow-300: #fde047;
+ --color-yellow-400: #facc15;
+ --color-yellow-500: #eab308;
+ --color-yellow-600: #ca8a04;
+ --color-yellow-700: #a16207;
+ --color-yellow-800: #854d0e;
+ --color-yellow-900: #713f12;
+ --color-yellow-950: #422006;
+ --color-lime-50: #f7fee7;
+ --color-lime-100: #ecfccb;
+ --color-lime-200: #d9f99d;
+ --color-lime-300: #bef264;
+ --color-lime-400: #a3e635;
+ --color-lime-500: #84cc16;
+ --color-lime-600: #65a30d;
+ --color-lime-700: #4d7c0f;
+ --color-lime-800: #3f6212;
+ --color-lime-900: #365314;
+ --color-lime-950: #1a2e05;
+ --color-green-50: #f0fdf4;
+ --color-green-100: #dcfce7;
+ --color-green-200: #bbf7d0;
+ --color-green-300: #86efac;
+ --color-green-400: #4ade80;
+ --color-green-500: #22c55e;
+ --color-green-600: #16a34a;
+ --color-green-700: #15803d;
+ --color-green-800: #166534;
+ --color-green-900: #14532d;
+ --color-green-950: #052e16;
+ --color-emerald-50: #ecfdf5;
+ --color-emerald-100: #d1fae5;
+ --color-emerald-200: #a7f3d0;
+ --color-emerald-300: #6ee7b7;
+ --color-emerald-400: #34d399;
+ --color-emerald-500: #10b981;
+ --color-emerald-600: #059669;
+ --color-emerald-700: #047857;
+ --color-emerald-800: #065f46;
+ --color-emerald-900: #064e3b;
+ --color-emerald-950: #022c22;
+ --color-teal-50: #f0fdfa;
+ --color-teal-100: #ccfbf1;
+ --color-teal-200: #99f6e4;
+ --color-teal-300: #5eead4;
+ --color-teal-400: #2dd4bf;
+ --color-teal-500: #14b8a6;
+ --color-teal-600: #0d9488;
+ --color-teal-700: #0f766e;
+ --color-teal-800: #115e59;
+ --color-teal-900: #134e4a;
+ --color-teal-950: #042f2e;
+ --color-cyan-50: #ecfeff;
+ --color-cyan-100: #cffafe;
+ --color-cyan-200: #a5f3fc;
+ --color-cyan-300: #67e8f9;
+ --color-cyan-400: #22d3ee;
+ --color-cyan-500: #06b6d4;
+ --color-cyan-600: #0891b2;
+ --color-cyan-700: #0e7490;
+ --color-cyan-800: #155e75;
+ --color-cyan-900: #164e63;
+ --color-cyan-950: #083344;
+ --color-sky-50: #f0f9ff;
+ --color-sky-100: #e0f2fe;
+ --color-sky-200: #bae6fd;
+ --color-sky-300: #7dd3fc;
+ --color-sky-400: #38bdf8;
+ --color-sky-500: #0ea5e9;
+ --color-sky-600: #0284c7;
+ --color-sky-700: #0369a1;
+ --color-sky-800: #075985;
+ --color-sky-900: #0c4a6e;
+ --color-sky-950: #082f49;
+ --color-blue-50: #eff6ff;
+ --color-blue-100: #dbeafe;
+ --color-blue-200: #bfdbfe;
+ --color-blue-300: #93c5fd;
+ --color-blue-400: #60a5fa;
+ --color-blue-500: #3b82f6;
+ --color-blue-600: #2563eb;
+ --color-blue-700: #1d4ed8;
+ --color-blue-800: #1e40af;
+ --color-blue-900: #1e3a8a;
+ --color-blue-950: #172554;
+ --color-indigo-50: #eef2ff;
+ --color-indigo-100: #e0e7ff;
+ --color-indigo-200: #c7d2fe;
+ --color-indigo-300: #a5b4fc;
+ --color-indigo-400: #818cf8;
+ --color-indigo-500: #6366f1;
+ --color-indigo-600: #4f46e5;
+ --color-indigo-700: #4338ca;
+ --color-indigo-800: #3730a3;
+ --color-indigo-900: #312e81;
+ --color-indigo-950: #1e1b4b;
+ --color-violet-50: #f5f3ff;
+ --color-violet-100: #ede9fe;
+ --color-violet-200: #ddd6fe;
+ --color-violet-300: #c4b5fd;
+ --color-violet-400: #a78bfa;
+ --color-violet-500: #8b5cf6;
+ --color-violet-600: #7c3aed;
+ --color-violet-700: #6d28d9;
+ --color-violet-800: #5b21b6;
+ --color-violet-900: #4c1d95;
+ --color-violet-950: #2e1065;
+ --color-purple-50: #faf5ff;
+ --color-purple-100: #f3e8ff;
+ --color-purple-200: #e9d5ff;
+ --color-purple-300: #d8b4fe;
+ --color-purple-400: #c084fc;
+ --color-purple-500: #a855f7;
+ --color-purple-600: #9333ea;
+ --color-purple-700: #7e22ce;
+ --color-purple-800: #6b21a8;
+ --color-purple-900: #581c87;
+ --color-purple-950: #3b0764;
+ --color-fuchsia-50: #fdf4ff;
+ --color-fuchsia-100: #fae8ff;
+ --color-fuchsia-200: #f5d0fe;
+ --color-fuchsia-300: #f0abfc;
+ --color-fuchsia-400: #e879f9;
+ --color-fuchsia-500: #d946ef;
+ --color-fuchsia-600: #c026d3;
+ --color-fuchsia-700: #a21caf;
+ --color-fuchsia-800: #86198f;
+ --color-fuchsia-900: #701a75;
+ --color-fuchsia-950: #4a044e;
+ --color-pink-50: #fdf2f8;
+ --color-pink-100: #fce7f3;
+ --color-pink-200: #fbcfe8;
+ --color-pink-300: #f9a8d4;
+ --color-pink-400: #f472b6;
+ --color-pink-500: #ec4899;
+ --color-pink-600: #db2777;
+ --color-pink-700: #be185d;
+ --color-pink-800: #9d174d;
+ --color-pink-900: #831843;
+ --color-pink-950: #500724;
+ --color-rose-50: #fff1f2;
+ --color-rose-100: #ffe4e6;
+ --color-rose-200: #fecdd3;
+ --color-rose-300: #fda4af;
+ --color-rose-400: #fb7185;
+ --color-rose-500: #f43f5e;
+ --color-rose-600: #e11d48;
+ --color-rose-700: #be123c;
+ --color-rose-800: #9f1239;
+ --color-rose-900: #881337;
+ --color-rose-950: #4c0519;
+ --shadow-sm: 0 1px 2px 0 #0000000d;
+ --shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
+ --shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
+ --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
+ --shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;
+ --shadow-2xl: 0 25px 50px -12px #00000040;
+ --shadow-inner: inset 0 2px 4px 0 #0000000d;
+ --shadow-none: none;
+ --space-0: 0px;
+ --space-1: 0.25rem;
+ --space-2: 0.5rem;
+ --space-3: 0.75rem;
+ --space-4: 1rem;
+ --space-5: 1.25rem;
+ --space-6: 1.5rem;
+ --space-7: 1.75rem;
+ --space-8: 2rem;
+ --space-9: 2.25rem;
+ --space-10: 2.5rem;
+ --space-11: 2.75rem;
+ --space-12: 3rem;
+ --space-14: 3.5rem;
+ --space-16: 4rem;
+ --space-20: 5rem;
+ --space-24: 6rem;
+ --space-28: 7rem;
+ --space-32: 8rem;
+ --space-36: 9rem;
+ --space-40: 10rem;
+ --space-44: 11rem;
+ --space-48: 12rem;
+ --space-52: 13rem;
+ --space-56: 14rem;
+ --space-60: 15rem;
+ --space-64: 16rem;
+ --space-72: 18rem;
+ --space-80: 20rem;
+ --space-96: 24rem;
+ --space-px: 1px;
+ --screen-sm: 640px;
+ --screen-md: 768px;
+ --screen-lg: 1024px;
+ --screen-xl: 1280px;
+ --screen-2xl: 1536px;
+ --w-0: 0px;
+ --w-1: 0.25rem;
+ --w-2: 0.5rem;
+ --w-3: 0.75rem;
+ --w-4: 1rem;
+ --w-5: 1.25rem;
+ --w-6: 1.5rem;
+ --w-7: 1.75rem;
+ --w-8: 2rem;
+ --w-9: 2.25rem;
+ --w-10: 2.5rem;
+ --w-11: 2.75rem;
+ --w-12: 3rem;
+ --w-14: 3.5rem;
+ --w-16: 4rem;
+ --w-20: 5rem;
+ --w-24: 6rem;
+ --w-28: 7rem;
+ --w-32: 8rem;
+ --w-36: 9rem;
+ --w-40: 10rem;
+ --w-44: 11rem;
+ --w-48: 12rem;
+ --w-52: 13rem;
+ --w-56: 14rem;
+ --w-60: 15rem;
+ --w-64: 16rem;
+ --w-72: 18rem;
+ --w-80: 20rem;
+ --w-96: 24rem;
+ --w-px: 1px;
+ --w-none: none;
+ --w-xs: 20rem;
+ --w-sm: 24rem;
+ --w-md: 28rem;
+ --w-lg: 32rem;
+ --w-xl: 36rem;
+ --w-2xl: 42rem;
+ --w-3xl: 48rem;
+ --w-4xl: 56rem;
+ --w-5xl: 64rem;
+ --w-6xl: 72rem;
+ --w-7xl: 80rem;
+ --w-full: 100%;
+ --w-min: min-content;
+ --w-max: max-content;
+ --w-fit: fit-content;
+ --w-prose: 65ch;
+ --w-screen-sm: 640px;
+ --w-screen-md: 768px;
+ --w-screen-lg: 1024px;
+ --w-screen-xl: 1280px;
+ --w-screen-2xl: 1536px;
+ --rounded-none: 0px;
+ --rounded-sm: 0.125rem;
+ --rounded: 0.25rem;
+ --rounded-md: 0.375rem;
+ --rounded-lg: 0.5rem;
+ --rounded-xl: 0.75rem;
+ --rounded-2xl: 1rem;
+ --rounded-3xl: 1.5rem;
+ --rounded-full: 9999px;
+}
diff --git a/practices/24-10-10/css/index.css b/practices/24-10-10/css/index.css
new file mode 100644
index 0000000..5505a15
--- /dev/null
+++ b/practices/24-10-10/css/index.css
@@ -0,0 +1,55 @@
+@import 'common.css';
+
+html,
+body,
+main {
+ height: 100%;
+ width: 100%;
+}
+
+main {
+ display: grid;
+
+ padding: 1rem;
+ gap: 1rem;
+
+ grid-template: 1fr 1fr 2fr 1fr / 1fr 1fr;
+
+ @media (min-width: 768px) {
+ grid-template: 1fr 3fr / 1fr 1fr;
+ }
+
+ & > * {
+ background-color: grey;
+ border-radius: 1rem;
+
+ &:last-of-type {
+ grid-column: 1/3;
+ @media (min-width: 768px) {
+ grid-column: unset;
+ }
+ }
+ }
+
+ & > section {
+ display: grid;
+ padding: 2rem;
+ gap: 1rem;
+
+ grid-column: 1/3;
+ @media (min-width: 768px) {
+ grid-column: unset;
+ }
+
+ grid-template: 1fr 1fr / 1fr 1fr;
+
+ & > * {
+ background-color: lightgrey;
+ border-radius: 1rem;
+
+ &:nth-child(1) {
+ grid-column: 1/3;
+ }
+ }
+ }
+}
diff --git a/practices/24-10-10/index.html b/practices/24-10-10/index.html
new file mode 100644
index 0000000..29e74d0
--- /dev/null
+++ b/practices/24-10-10/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+ 24-10-10 in class
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scripts/new.sh b/scripts/new.sh
old mode 100644
new mode 100755