diff options
| -rw-r--r-- | assets/css/_basics.scss | 24 | ||||
| -rw-r--r-- | assets/css/_utils.scss | 4 | ||||
| -rw-r--r-- | assets/css/_vars.scss | 4 | ||||
| -rw-r--r-- | assets/css/components/_card.scss | 59 | ||||
| -rw-r--r-- | assets/css/components/_section-heading.scss | 28 | ||||
| -rw-r--r-- | assets/css/layouts/_card-grid.scss | 7 | ||||
| -rw-r--r-- | assets/css/objects/_icon.scss | 12 | ||||
| -rw-r--r-- | assets/css/style.scss | 5 | ||||
| -rw-r--r-- | content/index.md | 6 | ||||
| -rw-r--r-- | templates/base.html | 2 | ||||
| -rw-r--r-- | templates/layouts/index.html | 78 | ||||
| -rw-r--r-- | templates/symbols.svg | 4 |
12 files changed, 208 insertions, 25 deletions
diff --git a/assets/css/_basics.scss b/assets/css/_basics.scss index eee48f4..64b11cf 100644 --- a/assets/css/_basics.scss +++ b/assets/css/_basics.scss | |||
| @@ -76,6 +76,11 @@ strong { | |||
| 76 | font-weight: bold; | 76 | font-weight: bold; |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | small { | ||
| 80 | color: prop(--colors --fg-hi); | ||
| 81 | font-size: 1 / 16 * 14em; | ||
| 82 | } | ||
| 83 | |||
| 79 | ul, | 84 | ul, |
| 80 | ol { | 85 | ol { |
| 81 | margin: ($line-height * 1em) 0 0; | 86 | margin: ($line-height * 1em) 0 0; |
| @@ -175,27 +180,12 @@ h1 { | |||
| 175 | } | 180 | } |
| 176 | 181 | ||
| 177 | p { | 182 | p { |
| 178 | margin: ($line-height * 1em) 0 0; | 183 | margin: ($line-height * 1em) 0 0; |
| 179 | hyphens: auto; | ||
| 180 | } | 184 | } |
| 181 | 185 | ||
| 182 | :link, | 186 | :link, |
| 183 | :visited { | 187 | :visited { |
| 184 | position: relative; | 188 | color: var(--link--idle--fg); |
| 185 | z-index: 1; | ||
| 186 | margin: 0 -.3em; | ||
| 187 | padding: .2em .3em; | ||
| 188 | color: var(--link--idle--fg); | ||
| 189 | |||
| 190 | &:hover { | ||
| 191 | background-color: var(--link--hover--bg); | ||
| 192 | color: var(--link--hover--fg); | ||
| 193 | text-decoration: none; | ||
| 194 | } | ||
| 195 | |||
| 196 | strong { | ||
| 197 | color: currentColor; | ||
| 198 | } | ||
| 199 | } | 189 | } |
| 200 | 190 | ||
| 201 | hr { | 191 | hr { |
diff --git a/assets/css/_utils.scss b/assets/css/_utils.scss index bca50d8..3eff6fc 100644 --- a/assets/css/_utils.scss +++ b/assets/css/_utils.scss | |||
| @@ -19,3 +19,7 @@ | |||
| 19 | @include utility('mt0') { | 19 | @include utility('mt0') { |
| 20 | margin-top: 0; | 20 | margin-top: 0; |
| 21 | } | 21 | } |
| 22 | |||
| 23 | @include utility('db') { | ||
| 24 | display: block; | ||
| 25 | } | ||
diff --git a/assets/css/_vars.scss b/assets/css/_vars.scss index 0c6102d..1ef0c8a 100644 --- a/assets/css/_vars.scss +++ b/assets/css/_vars.scss | |||
| @@ -2,7 +2,7 @@ $breakpoints: ( | |||
| 2 | xs: 320px, | 2 | xs: 320px, |
| 3 | sm: 600px, | 3 | sm: 600px, |
| 4 | md: 900px, | 4 | md: 900px, |
| 5 | lg: 1400px, | 5 | lg: 1500px, |
| 6 | ); | 6 | ); |
| 7 | 7 | ||
| 8 | $unit-intervals: ( | 8 | $unit-intervals: ( |
| @@ -22,7 +22,7 @@ $subcontent--indent: 2em; | |||
| 22 | 22 | ||
| 23 | $gray0: hsl(220, 0%, 6%); | 23 | $gray0: hsl(220, 0%, 6%); |
| 24 | $gray1: hsl(220, 0%, 9%); | 24 | $gray1: hsl(220, 0%, 9%); |
| 25 | $gray2: hsl(220, 0%, 16%); | 25 | $gray2: hsl(220, 0%, 15%); |
| 26 | $gray3: hsl(220, 0%, 29%); | 26 | $gray3: hsl(220, 0%, 29%); |
| 27 | $gray4: hsl(220, 0%, 54%); | 27 | $gray4: hsl(220, 0%, 54%); |
| 28 | $gray5: hsl(220, 0%, 73%); | 28 | $gray5: hsl(220, 0%, 73%); |
diff --git a/assets/css/components/_card.scss b/assets/css/components/_card.scss new file mode 100644 index 0000000..4b3a094 --- /dev/null +++ b/assets/css/components/_card.scss | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | @include namespace('card') { | ||
| 2 | @include store(( | ||
| 3 | --dims: ( | ||
| 4 | --pad-x: 1.3em, | ||
| 5 | --pad-y: 1em | ||
| 6 | ), | ||
| 7 | --colors: ( | ||
| 8 | --bg: prop(--colors --bg-lo, $global: true), | ||
| 9 | --flip: ( | ||
| 10 | --bg: prop(--colors --bg-lo, $global: true), | ||
| 11 | ) | ||
| 12 | ) | ||
| 13 | )); | ||
| 14 | |||
| 15 | @include component(namespace()) { | ||
| 16 | display: block; | ||
| 17 | position: relative; | ||
| 18 | background-color: prop(--colors --bg); | ||
| 19 | line-height: 1.4; | ||
| 20 | |||
| 21 | &:hover { | ||
| 22 | @include element('content') { | ||
| 23 | @include modifier('flip') { | ||
| 24 | visibility: visible; | ||
| 25 | transition: | ||
| 26 | visibility 0s, | ||
| 27 | opacity .2s; | ||
| 28 | opacity: 1; | ||
| 29 | } | ||
| 30 | } | ||
| 31 | } | ||
| 32 | |||
| 33 | @include element('content') { | ||
| 34 | display: flex; | ||
| 35 | box-sizing: border-box; | ||
| 36 | flex-direction: row; | ||
| 37 | align-items: center; | ||
| 38 | padding: prop(--dims --pad-y) prop(--dims --pad-x); | ||
| 39 | |||
| 40 | @include modifier('flip') { | ||
| 41 | visibility: hidden; | ||
| 42 | position: absolute; | ||
| 43 | top: 0; | ||
| 44 | left: 0; | ||
| 45 | width: 100%; | ||
| 46 | height: 100%; | ||
| 47 | transition: | ||
| 48 | visibility 0s linear .2s, | ||
| 49 | opacity .2s; | ||
| 50 | opacity: 0; | ||
| 51 | background-color: prop(--colors --flip --bg); | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
| 55 | @include element('icon') { | ||
| 56 | margin-left: auto; | ||
| 57 | } | ||
| 58 | } | ||
| 59 | } | ||
diff --git a/assets/css/components/_section-heading.scss b/assets/css/components/_section-heading.scss new file mode 100644 index 0000000..db75159 --- /dev/null +++ b/assets/css/components/_section-heading.scss | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | @include namespace('section-heading') { | ||
| 2 | @include store(( | ||
| 3 | --dims: ( | ||
| 4 | --pad-y: $line-height * 2rem | ||
| 5 | ), | ||
| 6 | --colors: ( | ||
| 7 | --line: prop(--colors --accent --color, $global: true), | ||
| 8 | ) | ||
| 9 | )); | ||
| 10 | |||
| 11 | @include component(namespace()) { | ||
| 12 | margin: 0 0 prop(--dims --pad-y); | ||
| 13 | font-size: .8em; | ||
| 14 | font-weight: 400; | ||
| 15 | letter-spacing: .2em; | ||
| 16 | text-transform: uppercase; | ||
| 17 | |||
| 18 | &::before { | ||
| 19 | content: ''; | ||
| 20 | display: inline-block; | ||
| 21 | width: 3em; | ||
| 22 | height: 1px; | ||
| 23 | margin-right: 1.3em; | ||
| 24 | background-color: prop(--colors --line); | ||
| 25 | vertical-align: middle; | ||
| 26 | } | ||
| 27 | } | ||
| 28 | } | ||
diff --git a/assets/css/layouts/_card-grid.scss b/assets/css/layouts/_card-grid.scss new file mode 100644 index 0000000..7998952 --- /dev/null +++ b/assets/css/layouts/_card-grid.scss | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | @include namespace('card-grid') { | ||
| 2 | @include layout(namespace()) { | ||
| 3 | display: grid; | ||
| 4 | grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); | ||
| 5 | gap: .7rem; | ||
| 6 | } | ||
| 7 | } | ||
diff --git a/assets/css/objects/_icon.scss b/assets/css/objects/_icon.scss new file mode 100644 index 0000000..cb966c8 --- /dev/null +++ b/assets/css/objects/_icon.scss | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | @include namespace('icon') { | ||
| 2 | @include object(namespace()) { | ||
| 3 | display: block; | ||
| 4 | width: 16px; | ||
| 5 | height: 16px; | ||
| 6 | stroke-width: 1.5px; | ||
| 7 | stroke-linecap: round; | ||
| 8 | stroke: currentColor; | ||
| 9 | stroke-linejoin: round; | ||
| 10 | fill: none; | ||
| 11 | } | ||
| 12 | } | ||
diff --git a/assets/css/style.scss b/assets/css/style.scss index f4c6db7..90cbe5d 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss | |||
| @@ -8,12 +8,17 @@ | |||
| 8 | @import 'functions'; | 8 | @import 'functions'; |
| 9 | @import 'basics'; | 9 | @import 'basics'; |
| 10 | 10 | ||
| 11 | @import 'objects/icon'; | ||
| 12 | |||
| 11 | @import 'components/nav'; | 13 | @import 'components/nav'; |
| 12 | @import 'components/landing-banner'; | 14 | @import 'components/landing-banner'; |
| 15 | @import 'components/section-heading'; | ||
| 13 | @import 'components/footer'; | 16 | @import 'components/footer'; |
| 17 | @import 'components/card'; | ||
| 14 | 18 | ||
| 15 | @import 'layouts/landing'; | 19 | @import 'layouts/landing'; |
| 16 | @import 'layouts/container'; | 20 | @import 'layouts/container'; |
| 21 | @import 'layouts/card-grid'; | ||
| 17 | 22 | ||
| 18 | @import 'scopes/body'; | 23 | @import 'scopes/body'; |
| 19 | 24 | ||
diff --git a/content/index.md b/content/index.md index 438e56a..e0472ad 100644 --- a/content/index.md +++ b/content/index.md | |||
| @@ -2,8 +2,7 @@ | |||
| 2 | title: Home | 2 | title: Home |
| 3 | --- | 3 | --- |
| 4 | 4 | ||
| 5 | ## Find me | 5 | <!-- |
| 6 | |||
| 7 | - **Bandcamp:** [volpeon](https://bandcamp.com/volpeon) | 6 | - **Bandcamp:** [volpeon](https://bandcamp.com/volpeon) |
| 8 | - **Email:** me@volpeon.ink | 7 | - **Email:** me@volpeon.ink |
| 9 | - **Fediverse:** @volpeon@fedi.vulpes.one | 8 | - **Fediverse:** @volpeon@fedi.vulpes.one |
| @@ -13,9 +12,8 @@ title: Home | |||
| 13 | - **Steam:** [volpeon](https://steamcommunity.com/id/volpeon/) | 12 | - **Steam:** [volpeon](https://steamcommunity.com/id/volpeon/) |
| 14 | - **XMPP:** <available> | 13 | - **XMPP:** <available> |
| 15 | 14 | ||
| 16 | ## OMEMO Fingerprints | ||
| 17 | |||
| 18 | ```plain | 15 | ```plain |
| 19 | CB07051B E223EF70 8EE8F665 BBFCEF00 83415C45 DCA31906 F2362543 F5543449 | 16 | CB07051B E223EF70 8EE8F665 BBFCEF00 83415C45 DCA31906 F2362543 F5543449 |
| 20 | C2C575EE 0236965C 4DBAA7EA 12F9EC90 AFD57B2C F75B3F32 70F3D393 2EDA3A08 | 17 | C2C575EE 0236965C 4DBAA7EA 12F9EC90 AFD57B2C F75B3F32 70F3D393 2EDA3A08 |
| 21 | ``` | 18 | ``` |
| 19 | --> | ||
diff --git a/templates/base.html b/templates/base.html index 4a2102e..4fa4ee7 100644 --- a/templates/base.html +++ b/templates/base.html | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | <nav class="c-nav l-container l-container--pad-x"> | 35 | <nav class="c-nav l-container l-container--pad-x"> |
| 36 | <a class="c-nav__logo" href="/" title="$site.title$"> | 36 | <a class="c-nav__logo" href="/" title="$site.title$"> |
| 37 | <svg class="c-nav__logo-symbol"> | 37 | <svg class="c-nav__logo-symbol"> |
| 38 | <use xlink:href="#logo" href="#logo"></use> | 38 | <use href="#logo"></use> |
| 39 | </svg> | 39 | </svg> |
| 40 | </a> | 40 | </a> |
| 41 | $for(menus.main.items)$ | 41 | $for(menus.main.items)$ |
diff --git a/templates/layouts/index.html b/templates/layouts/index.html index d145b54..bc1b6d4 100644 --- a/templates/layouts/index.html +++ b/templates/layouts/index.html | |||
| @@ -7,12 +7,88 @@ | |||
| 7 | I'm a <strong class="c-landing-banner__emph">red fox</strong> in disguise. | 7 | I'm a <strong class="c-landing-banner__emph">red fox</strong> in disguise. |
| 8 | </span> | 8 | </span> |
| 9 | </h1> | 9 | </h1> |
| 10 | <p>Welcome to my website! I'm Volpeon, a red fox doing human things such as programming, creating vector art, and running a website.</p> | 10 | <p> |
| 11 | Welcome to my website! I'm Volpeon, a red fox disguised as a human. | ||
| 12 | I enjoy programming, creating vector art and designing user interfaces. | ||
| 13 | </p> | ||
| 11 | </div> | 14 | </div> |
| 12 | </header> | 15 | </header> |
| 13 | 16 | ||
| 14 | <section class="l-landing__content"> | 17 | <section class="l-landing__content"> |
| 15 | <div class="l-container l-container--pad-x l-container--content s-body"> | 18 | <div class="l-container l-container--pad-x l-container--content s-body"> |
| 19 | <h1 class="c-section-heading">My profiles</h1> | ||
| 20 | |||
| 21 | <div class="l-card-grid"> | ||
| 22 | <div class="c-card"> | ||
| 23 | <div class="c-card__content"> | ||
| 24 | <div> | ||
| 25 | <strong class="u-db">Bandcamp</strong> | ||
| 26 | <small>volpeon</small> | ||
| 27 | </div> | ||
| 28 | <svg class="c-card__icon o-icon"> | ||
| 29 | <use href="#icon-link-external"></use> | ||
| 30 | </svg> | ||
| 31 | </div> | ||
| 32 | <div class="c-card__content c-card__content--flip"> | ||
| 33 | <a href="https://bandcamp.com/volpeon">View profile</a> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | |||
| 37 | <div class="c-card"> | ||
| 38 | <div class="c-card__content"> | ||
| 39 | <div> | ||
| 40 | <strong class="u-db">E-Mail</strong> | ||
| 41 | <small>me@volpeon.ink</small> | ||
| 42 | </div> | ||
| 43 | </div> | ||
| 44 | </div> | ||
| 45 | |||
| 46 | <div class="c-card"> | ||
| 47 | <div class="c-card__content"> | ||
| 48 | <div> | ||
| 49 | <strong class="u-db">Fediverse</strong> | ||
| 50 | <small>@volpeon@fedi.vulpes.one</small> | ||
| 51 | </div> | ||
| 52 | </div> | ||
| 53 | </div> | ||
| 54 | |||
| 55 | <div class="c-card"> | ||
| 56 | <div class="c-card__content"> | ||
| 57 | <div> | ||
| 58 | <strong class="u-db">IRC</strong> | ||
| 59 | <small>volpeon</small> | ||
| 60 | </div> | ||
| 61 | <svg class="c-card__icon o-icon"> | ||
| 62 | <use href="#icon-link-external"></use> | ||
| 63 | </svg> | ||
| 64 | </div> | ||
| 65 | <div class="c-card__content c-card__content--flip"> | ||
| 66 | <div> | ||
| 67 | <a href="irc://irc.furnet.org">Furnet</a>, | ||
| 68 | <a href="ircs://chat.freenode.net">Freenode</a>, | ||
| 69 | <a href="ircs://irc.vulpes.one">irc.vulpes.one</a> | ||
| 70 | </div> | ||
| 71 | </div> | ||
| 72 | </div> | ||
| 73 | |||
| 74 | <div class="c-card"> | ||
| 75 | <div class="c-card__content"> | ||
| 76 | <div> | ||
| 77 | <strong class="u-db">PeerTube</strong> | ||
| 78 | <small>@volpeon@pt.vulpes.one</small> | ||
| 79 | </div> | ||
| 80 | </div> | ||
| 81 | </div> | ||
| 82 | |||
| 83 | <div class="c-card"> | ||
| 84 | <div class="c-card__content"> | ||
| 85 | <div> | ||
| 86 | <strong class="u-db">XMPP</strong> | ||
| 87 | <small><available></small> | ||
| 88 | </div> | ||
| 89 | </div> | ||
| 90 | </div> | ||
| 91 | </div> | ||
| 16 | $body$ | 92 | $body$ |
| 17 | </div> | 93 | </div> |
| 18 | </section> | 94 | </section> |
diff --git a/templates/symbols.svg b/templates/symbols.svg index 1487e5e..d3f2987 100644 --- a/templates/symbols.svg +++ b/templates/symbols.svg | |||
| @@ -6,5 +6,9 @@ | |||
| 6 | <path fill="currentColor" stroke="none" d="m 9.91599,13 h 2.168035 L 8.584018,3 H 6.4159819 Z" /> | 6 | <path fill="currentColor" stroke="none" d="m 9.91599,13 h 2.168035 L 8.584018,3 H 6.4159819 Z" /> |
| 7 | <path fill="currentColor" stroke="none" d="M 9.915975,13 H 12.08401 L 15.584018,3 h -2.168036 z" /> | 7 | <path fill="currentColor" stroke="none" d="M 9.915975,13 H 12.08401 L 15.584018,3 h -2.168036 z" /> |
| 8 | </symbol> | 8 | </symbol> |
| 9 | |||
| 10 | <symbol id="icon-link-external" viewBox="0 0 16 16" preserveAspectRatio="xMinYMid"> | ||
| 11 | <path fill="none" stroke="currentColor" d="m 5.25,4.25 h 6.5 v 6.5 m 0,-6.5 -7.5,7.5" /> | ||
| 12 | </symbol> | ||
| 9 | </defs> | 13 | </defs> |
| 10 | </svg> | 14 | </svg> |
