Attic is a cozy space with lofty ambitions. attic.social
at main 136 lines 2.3 kB view raw
1html { 2 background: rgb(var(--color-brown)); 3 color: rgb(var(--color-white)); 4 scrollbar-color: rgb(var(--color-yellow)) rgb(var(--color-brown)); 5} 6 7body { 8 font-family: var(--font-family-1); 9 font-size: var(--font-size-3); 10 font-weight: 400; 11 font-synthesis: none; 12 line-height: var(--line-height-2); 13 min-block-size: 100svb; 14} 15 16attic-app { 17 display: flex; 18 flex-direction: column; 19 justify-content: start; 20 min-block-size: 100svb; 21 22 & > :is(header, footer, main) { 23 display: grid; 24 grid-template-columns: 25 [full-start] 26 1fr 27 [margin-start] 28 var(--app-margin) 29 [main-start] 30 minmax(260px, calc((900 / 16) * 1rem)) 31 [main-end] 32 var(--app-margin) 33 [margin-end] 34 1fr 35 [full-end]; 36 37 & > * { 38 grid-column: main; 39 } 40 } 41 42 & > header { 43 padding-block: 30px; 44 45 & > nav { 46 column-gap: 20px; 47 display: flex; 48 flex-wrap: wrap; 49 row-gap: 10px; 50 51 & a { 52 display: block; 53 54 &[aria-current] { 55 &:not(:hover) { 56 color: rgb(var(--color-light-yellow)); 57 } 58 } 59 } 60 } 61 } 62 63 & > footer { 64 color: rgb(var(--color-white) / 0.7); 65 margin-block-start: auto; 66 padding-block: 60px 30px; 67 68 & a { 69 color: currentColor; 70 } 71 72 & p small { 73 column-gap: 10px; 74 display: flex; 75 flex-wrap: wrap; 76 } 77 } 78 79 & > main { 80 row-gap: 30px; 81 } 82} 83 84:focus-visible { 85 outline: 4px solid magenta; 86 outline-offset: 2px; 87} 88 89:is(a[href], button) { 90 &:hover { 91 anchor-name: --pointer; 92 } 93} 94 95:where(body:not(:has(a[href]:hover, button:hover))) { 96 & :focus-visible { 97 anchor-name: --pointer; 98 } 99} 100 101dialog { 102 inline-size: 100%; 103 max-block-size: 100vb; 104 margin-inline: 0; 105 overscroll-behavior: contain; 106 padding-block: 10px; 107 108 & > form { 109 inline-size: calc(100vi - 20px); 110 margin-inline: auto; 111 } 112 113 @media (width >= 600px) { 114 padding-block: 30px; 115 116 & > form { 117 inline-size: min(min(100%, 900px), calc(100vi - (2 * var(--app-margin)))); 118 } 119 } 120 121 & [command="close"] { 122 inset-block-start: 20px; 123 inset-inline-end: 0; 124 position: absolute; 125 z-index: 1; 126 127 &::before { 128 content: "×" / ""; 129 } 130 } 131 132 &::backdrop { 133 background: rgb(var(--color-brown) / 0.5); 134 backdrop-filter: blur(5px); 135 } 136}