diff --git a/src/css/base/fonts.css b/src/css/base/fonts.css new file mode 100644 index 0000000..77f055b --- /dev/null +++ b/src/css/base/fonts.css @@ -0,0 +1,27 @@ +@font-face { + font-family: "Quantico"; + src: url("/fonts/Quantico-Regular.woff2") format("woff2"); + font-display: swap; + font-weight: 400; +} + +@font-face { + font-family: "Quantico"; + src: url("/fonts/Quantico-Bold.woff2") format("woff2"); + font-display: swap; + font-weight: 700; +} + +@font-face { + font-family: "Silkscreen"; + src: url("/fonts/Silkscreen-Regular.woff2") format("woff2"); + font-display: block; + font-weight: 400; +} + +@font-face { + font-family: "Silkscreen"; + src: url("/fonts/Silkscreen-Bold.woff2") format("woff2"); + font-display: block; + font-weight: 700; +} diff --git a/src/css/base/global.css b/src/css/base/global.css index 6a5186f..0fe558a 100644 --- a/src/css/base/global.css +++ b/src/css/base/global.css @@ -1,11 +1,11 @@ html { - background: wheat; - color: black; + background: #402622; + color: #fff; } body { - font-family: sans-serif; - font-size: 1.125rem; + font-family: var(--font-family-1); + font-size: calc(20 / 16 * 1rem); font-weight: 400; font-synthesis: none; line-height: 1.5; @@ -53,6 +53,6 @@ attic-app { } :focus-visible { - outline: 2px solid magenta; - outline-offset: 2px; + outline: 4px solid magenta; + outline-offset: 4px; } diff --git a/src/css/base/properties.css b/src/css/base/properties.css new file mode 100644 index 0000000..935c844 --- /dev/null +++ b/src/css/base/properties.css @@ -0,0 +1,4 @@ +:root { + --font-family-1: "Quantico", sans-serif; + --font-family-2: "Silkscreen", sans-serif; +} diff --git a/src/css/base/typography.css b/src/css/base/typography.css index cbc08e1..a8aab7b 100644 --- a/src/css/base/typography.css +++ b/src/css/base/typography.css @@ -1,13 +1,18 @@ -h1 { - font-size: 2rem; +:is(h1, h2, h3) { + font-family: var(--font-family-1); + font-size: calc(30 / 16 * 1rem); font-weight: 700; + line-height: 1.2; } -:is(h2, h3, h4, h5, h6) { - font-size: 1.5rem; - font-weight: 700; +h1 { + font-size: calc(40 / 16 * 1rem); } p:has(small:read-only) { - font-size: 1rem; + font-size: calc(16 / 16 * 1rem); +} + +a[href] { + color: #e6a000; } diff --git a/src/css/components/button.css b/src/css/components/button.css index b831be7..15a29e2 100644 --- a/src/css/components/button.css +++ b/src/css/components/button.css @@ -1,7 +1,20 @@ button { - border: 2px solid currentColor; - font-weight: 700; + /*background: white;*/ + --font-size: calc(23 / 16 * 1rem); + border: 15px solid transparent; + border-image: url("/images/button.svg") 15 fill stretch; + block-size: calc(var(--font-size) + 30px); + font-family: var(--font-family-2); + font-size: var(--font-size); + font-weight: 400; inline-size: fit-content; - line-height: 1.5; - padding: 5px 10px; + line-height: 1; + padding: 0 5px; + text-box: trim-both ex alphabetic; + text-transform: uppercase; + text-shadow: 2px 2px #40262244; + transition: border-image 200ms; + &:hover { + border-image-source: url("/images/button-hover.svg"); + } } diff --git a/src/css/components/form.css b/src/css/components/form.css index 74fe190..8f57997 100644 --- a/src/css/components/form.css +++ b/src/css/components/form.css @@ -1,13 +1,21 @@ form { - background: white; + background: #ffeabc; + border: 5px solid black; + box-shadow: inset 0 0 0 4px #e6a000; + border-radius: 10px; + border-start-start-radius: 20px; + border-end-end-radius: 20px; + corner-shape: bevel; + color: #000; display: grid; gap: 10px; justify-items: start; - padding: 20px; + padding: 30px; + padding-block-start: 25px; & label { display: block; - font-size: 1rem; + font-size: calc(20 / 16 * 1rem); font-weight: 700; inline-size: fit-content; line-height: 1.5; @@ -19,7 +27,7 @@ form { &[action*="login"] { grid-template-columns: 1fr auto; - inline-size: min(100%, 400px); + inline-size: min(100%, 600px); & input { inline-size: 100%; @@ -30,4 +38,13 @@ form { grid-column: 2 / 3; } } + + &[action*="purge"] { + & button { + &:not(:hover) { + border-image-source: url("/images/button-danger.svg"); + color: #dd2244; + } + } + } } diff --git a/src/css/components/input.css b/src/css/components/input.css index caa647a..8c9ef52 100644 --- a/src/css/components/input.css +++ b/src/css/components/input.css @@ -1,8 +1,12 @@ -input[type="text"] { - background: white; - border: 2px solid currentColor; +input { + /*background: white;*/ + border: 15px solid transparent; + border-image: url("/images/input.svg") 15 fill stretch; + block-size: calc((22 / 16 * 1rem) + 30px); + font-family: var(--font-family-1); + font-size: calc(18 / 16 * 1rem); font-weight: 400; inline-size: min(100%, 300px); - line-height: 1.5; - padding: 5px 10px; + line-height: calc(22 / 16 * 1rem); + padding: 0; } diff --git a/src/css/main.css b/src/css/main.css index 841b06c..e4e5eef 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -1,7 +1,9 @@ @layer base, components, utility; +@import "base/fonts.css" layer(base); @import "base/reset.css" layer(base); @import "base/global.css" layer(base); +@import "base/properties.css" layer(base); @import "base/typography.css" layer(base); @import "components/button.css" layer(base); @@ -21,7 +23,7 @@ grid-template-columns: var(--size) auto; & img { - border-radius: calc(1px * infinity); + /*border-radius: calc(1px * infinity);*/ block-size: var(--size); inline-size: var(--size); grid-column: 1; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d0953cf..fcc7cb9 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -113,6 +113,10 @@ }; + + Attic + + {#if data.user}

Signed in as:

@@ -199,6 +203,6 @@ {/if} -

Suggestions provided by Bluesky.

+

Suggestions provided by Bluesky.

{/if} diff --git a/src/routes/favicon.ico/+server.ts b/src/routes/favicon.ico/+server.ts index 90ecdab..77b101f 100644 --- a/src/routes/favicon.ico/+server.ts +++ b/src/routes/favicon.ico/+server.ts @@ -8,10 +8,7 @@ export const GET: RequestHandler = async (event) => { const response = await event.platform.env.ASSETS.fetch( new URL("/images/favicon.ico", event.platform.env.ORIGIN), ); - // if (dev) { const headers = new Headers(response.headers); headers.set("Content-Type", "image/x-icon"); return new Response(response.body, { headers }); - // } - // return response; }; diff --git a/static/images/button-danger.svg b/static/images/button-danger.svg new file mode 100644 index 0000000..ac2a794 --- /dev/null +++ b/static/images/button-danger.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/images/button-hover.svg b/static/images/button-hover.svg new file mode 100644 index 0000000..4a235b7 --- /dev/null +++ b/static/images/button-hover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/images/button.svg b/static/images/button.svg new file mode 100644 index 0000000..0aef633 --- /dev/null +++ b/static/images/button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/images/favicon.ico b/static/images/favicon.ico index ac0ed97a46fb5e21e2ae410622f2f261b721ec86..f78afc15c4fff93476a30feff185cb0794970e0e 100644 GIT binary patch literal 15406 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 ME`J*J7M(%>0Ey>m%m4rY literal 15406 zcmZQzU}Rus5D);-3Je)63=C!r3=9ei5Wa>W1H(KP1_lEI2tPxOf#H}a1A_(w1A_oa z9Roz10S8c0bND|Tu&h<|f1Z+6|Apgw|0}6EV){wl5iG}3y86GYWfX?Igm>|Oh6T^S zSi+|SQ{J}(EC*5};Z=wsucYDhpS}GESPgsUvHwcyP6#y`PXF1uPeJ95qsk$LKge8= z`5-J7SOwQF9#9F^3lf*~$cKw##GAU~f6m4|V707$Xa6f{ID;`;&uOq2NAte_O6pj` z2FVRlE*bwB=063i7YnZYFBV!4W`o3}ozigIjbsLQ^=7ah=Bd~JgD}Y5T(w(?(hKsF zj9tQi#(7V`W`Oj9*fKV8MC%8c!CSHtt{;>xKw_j|1wHTo{J9Ij7{n$;?@&^UqgWtX z7*x(EFfcGUjF56>D8=olTL*XDrl{%iU)mx0zgS>3m`15HkjhiM@u=baU)mw%Kd6q7 za!v=A_juJKnaf+e0$$dG%6CwiNs=2hod2VkvEb={zQUzMm(v_=hu~#2sGJA6K|HXU zX#HX#wW#_RJo^talUVh}Kg{}r{|2Ki2GL{@&Pn1StecjkFDOv>i79i|4U+P z6C&j`Wcx7K8qWVYoAzS(NhoO|Mi_`hWBQ$=_27R{`xC=lV(nLR_>bJ~1Em2FW}bHQ zzk2z@c&G+ z?qS3O%neMl?*ErF4WXI+AU6o4O~+|Jf6fA$+6}T_-q0T-y@UMEJmuPdc|$*%+YfSs zq+1S(8p$4N%ZP^7lbX!${0`7s(!qv14~28KZz&~W;%pzHM?)Sm|Rp+N0x zMNPuvZKTFMXnYRThmkW00o$dZ?~QZbjaaimV`5?-w!X7qySQt%fX9hJ{vy`B=<1|gv;Jcnw*&R%c`7#i2aQLg z>mik|sO|nAWESI`hZy}=mWh|Z<4mNQ2~!W6mt~r98^c^szZ5ifEE?8C**KVn(|_UE zE{w52u=xv~{Ri0%as$jgq|%@{YS#Yq*xkS28F(xhH2y-WxiIx0z1YT+VeV(`J%e@b z8>XKit>OG%AbT#(@L`<$@V`)e?|((myfcYy9FQK6UXU3u_oC4ApZ*t2okCgssyY0Z zHx2m@8sA1S8)>YGz3uRSIg?V`{8wLF5z%t$qvzw*=!het&V$GE^ z3;WMJ3;sx|Kgx^IO_P<%wV{UK$yYQE9$ua=c?cJpJ4%H zy$vYcAY)K{DPtXrGcSY7oF2%!B4m9qHfQrby#9x|gA!WOJ@-HJv>RCCfMNcV|Db$; zbxv8`>Azs|6r5qtH1p1XO6po-{iLAl`Jbl@H0Odn4nXd}w)O}l#*C{ivfwGWjfidj zkXUySug>wmxL+x_Z32sTbQ&~wgxqcfu|ZR^1(JeRm{Db?qeaQO)oPF!`{v8SO0 z&;Env9Hd+_A^AYv@xPQ?HdqYiUUZtLeC>ZwyyCKt7UH0}L#CN`vHM}(lmGlV^Z$eT z4+=V-|M`lR{|Ds_ba#XJjI-_$Rqj&V59*HpL33)j+y%O4?=MykEkQV+_P0-3W>);@yL1Th%2MiQhKWCpd| zLykGpj;a4yCSSoB2e|wK3VUg4&ZQGs2c!ED6n>y}pSawKOI$E*I@#+_(A_{OU(Pi2 zKkG!?Z8CH}fbs=3$1f;#KS)1l4HT#ihwfH%KB&(k9M=P>8_0}vkbTs~pz$rx_zk*y z(fJ&$hyKf%g$_FRgVqy)`W=k3@8itNpfwVpc*5Gg8w7EopyTnMFK_XGP#+3C+(G{0 z%Uk##q=wpYPfhbcW2M5;o&ULNw*F`9KKUQCmY=(J>wnS6*8d9H9)mC4V2O9o*bZpz yn4C!vcx(m49;|7GnsGO3)-af_z>=Ov<8?G%N7KM)8lXiQ7^cggM!iL+5C8ztAibXe diff --git a/static/images/input.svg b/static/images/input.svg new file mode 100644 index 0000000..67217d3 --- /dev/null +++ b/static/images/input.svg @@ -0,0 +1,4 @@ + + + +