diff options
Diffstat (limited to 'assets/css/components')
-rw-r--r-- | assets/css/components/_header.scss | 48 | ||||
-rw-r--r-- | assets/css/components/_landing-banner.scss | 49 | ||||
-rw-r--r-- | assets/css/components/_outer-button.scss | 89 | ||||
-rw-r--r-- | assets/css/components/_post-list.scss | 17 | ||||
-rw-r--r-- | assets/css/components/_project.scss | 68 |
5 files changed, 56 insertions, 215 deletions
diff --git a/assets/css/components/_header.scss b/assets/css/components/_header.scss index e74780b..81e4d4f 100644 --- a/assets/css/components/_header.scss +++ b/assets/css/components/_header.scss | |||
@@ -1,23 +1,53 @@ | |||
1 | @include namespace('header') { | 1 | @include namespace('header') { |
2 | @include store(( | 2 | @include store(( |
3 | --colors: ( | 3 | --colors: ( |
4 | --fg: prop(--colors --fg-lo, $global: true), | 4 | --fg: prop(--colors --fg-hi, $global: true), |
5 | --bg: prop(--colors --bg-hi, $global: true), | ||
6 | --hover: ( | 5 | --hover: ( |
7 | --fg: prop(--colors --bg-hi, $global: true), | 6 | --fg: prop(--colors --fg-lo, $global: true), |
8 | --bg: prop(--colors --accent --color, $global: true), | 7 | ), |
8 | --active: ( | ||
9 | --fg: prop(--colors --fg-lo, $global: true), | ||
9 | ) | 10 | ) |
11 | ), | ||
12 | --dims: ( | ||
13 | --height: 4rem, | ||
14 | --pad-x: .6rem, | ||
10 | ) | 15 | ) |
11 | )); | 16 | )); |
12 | 17 | ||
13 | @include component(namespace()) { | 18 | @include component(namespace()) { |
14 | display: flex; | 19 | display: flex; |
15 | position: fixed; | ||
16 | z-index: 10000; | ||
17 | top: 0; | ||
18 | left: 0; | ||
19 | flex-direction: row; | 20 | flex-direction: row; |
20 | justify-content: flex-start; | 21 | justify-content: flex-start; |
21 | box-shadow: prop(--dims --obj-shadow, $global: true) prop(--colors --obj-shadow, $global: true); | 22 | height: prop(--dims --height); |
23 | |||
24 | @include element('item') { | ||
25 | padding: 0 prop(--dims --pad-x); | ||
26 | line-height: prop(--dims --height); | ||
27 | color: prop(--colors --fg); | ||
28 | text-decoration: none; | ||
29 | |||
30 | &:hover { | ||
31 | color: prop(--colors --hover --fg); | ||
32 | } | ||
33 | |||
34 | @include modifier('icon') { | ||
35 | display: flex; | ||
36 | align-items: center; | ||
37 | justify-content: center; | ||
38 | padding: 0; | ||
39 | width: prop(--dims --height); | ||
40 | } | ||
41 | |||
42 | @include modifier('active') { | ||
43 | font-weight: bold; | ||
44 | color: prop(--colors --active --fg); | ||
45 | } | ||
46 | } | ||
47 | |||
48 | @include element('icon') { | ||
49 | width: 1.5em; | ||
50 | height: 1.5em; | ||
51 | } | ||
22 | } | 52 | } |
23 | } | 53 | } |
diff --git a/assets/css/components/_landing-banner.scss b/assets/css/components/_landing-banner.scss deleted file mode 100644 index f1b8595..0000000 --- a/assets/css/components/_landing-banner.scss +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | @include namespace('landing-banner') { | ||
2 | @include store(( | ||
3 | --colors: ( | ||
4 | --emph: ( | ||
5 | --fg: prop(--colors --accent --color, $global: true), | ||
6 | --bg: prop(--colors --bg-hi, $global: true) | ||
7 | ) | ||
8 | ) | ||
9 | )); | ||
10 | |||
11 | @include component(namespace()) { | ||
12 | @include element('title') { | ||
13 | max-width: 7em; | ||
14 | margin-top: 0; | ||
15 | transform: translateX(-.06em); | ||
16 | font-family: $font-fam--large; | ||
17 | font-weight: 350; | ||
18 | line-height: 1.2; | ||
19 | text-transform: none; | ||
20 | } | ||
21 | |||
22 | @include element('title-inner') { | ||
23 | background-image: linear-gradient( | ||
24 | to top, | ||
25 | transparent .15em, | ||
26 | #{prop(--colors --emph --bg)} .15em, | ||
27 | #{prop(--colors --emph --bg)} .6em, | ||
28 | transparent .6em | ||
29 | ); | ||
30 | } | ||
31 | |||
32 | @include element('emph') { | ||
33 | color: prop(--colors --emph --fg); | ||
34 | font-weight: 550; | ||
35 | } | ||
36 | |||
37 | @include media('<=md') { | ||
38 | @include element('title') { | ||
39 | max-width: none; | ||
40 | } | ||
41 | } | ||
42 | |||
43 | @include iro-responsive-env(('md', 'lg')) { | ||
44 | @include element('title') { | ||
45 | font-size: iro-responsive-set((2.6rem, 3.4rem)); | ||
46 | } | ||
47 | } | ||
48 | } | ||
49 | } | ||
diff --git a/assets/css/components/_outer-button.scss b/assets/css/components/_outer-button.scss deleted file mode 100644 index fb3a51e..0000000 --- a/assets/css/components/_outer-button.scss +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | @include namespace('outer-button') { | ||
2 | @include store(( | ||
3 | --colors: ( | ||
4 | --fg: prop(--colors --bg-hi, $global: true), | ||
5 | --bg: prop(--colors --fg-lo, $global: true), | ||
6 | --border: prop(--colors --fg, $global: true), | ||
7 | --hover: ( | ||
8 | --bg: prop(--colors --accent --color, $global: true), | ||
9 | --fg: prop(--colors --bg-hi, $global: true), | ||
10 | ), | ||
11 | --inverted: ( | ||
12 | --fg: prop(--colors --fg-lo, $global: true), | ||
13 | --bg: prop(--colors --bg-hi, $global: true), | ||
14 | ) | ||
15 | ), | ||
16 | --dims: ( | ||
17 | --pad-x: 1.7rem, | ||
18 | ) | ||
19 | )); | ||
20 | |||
21 | @include component(namespace()) { | ||
22 | display: flex; | ||
23 | height: prop(--dims --outer, $global: true); | ||
24 | transition: background-color .2s, color .2s; | ||
25 | background-color: prop(--colors --bg); | ||
26 | color: prop(--colors --fg); | ||
27 | font-size: 1rem; | ||
28 | font-weight: 700; | ||
29 | letter-spacing: .5px; | ||
30 | text-decoration: none; | ||
31 | text-transform: uppercase; | ||
32 | |||
33 | @include modifier('inverted') { | ||
34 | background-color: prop(--colors --inverted --bg); | ||
35 | color: prop(--colors --inverted --fg); | ||
36 | } | ||
37 | |||
38 | @include modifier('scroll-top') { | ||
39 | position: absolute; | ||
40 | right: 0; | ||
41 | bottom: 0; | ||
42 | } | ||
43 | |||
44 | @include element('icon') { | ||
45 | display: flex; | ||
46 | position: relative; | ||
47 | flex: 0 0 auto; | ||
48 | align-items: center; | ||
49 | justify-content: center; | ||
50 | width: prop(--dims --outer, $global: true); | ||
51 | height: 100%; | ||
52 | |||
53 | @include next-element('content') { | ||
54 | margin-left: -1px; | ||
55 | border-left: 1px solid prop(--colors --border); | ||
56 | } | ||
57 | } | ||
58 | |||
59 | @include element('icon-symbol') { | ||
60 | display: block; | ||
61 | width: 1.5em; | ||
62 | height: 1.5em; | ||
63 | } | ||
64 | |||
65 | @include element('content') { | ||
66 | height: 100%; | ||
67 | padding-right: prop(--dims --pad-x); | ||
68 | padding-left: prop(--dims --pad-x); | ||
69 | transition: border-left-color .2s; | ||
70 | font-size: 1 / 16 * 14em; | ||
71 | line-height: prop(--dims --outer, $global: true); | ||
72 | white-space: nowrap; | ||
73 | } | ||
74 | |||
75 | &:link, | ||
76 | &:visited { | ||
77 | &:hover { | ||
78 | background-color: prop(--colors --hover --bg); | ||
79 | color: prop(--colors --hover --fg); | ||
80 | |||
81 | @include element('icon') { | ||
82 | @include next-element('content') { | ||
83 | border-left-color: transparent; | ||
84 | } | ||
85 | } | ||
86 | } | ||
87 | } | ||
88 | } | ||
89 | } | ||
diff --git a/assets/css/components/_post-list.scss b/assets/css/components/_post-list.scss index 7a3b8a0..5126589 100644 --- a/assets/css/components/_post-list.scss +++ b/assets/css/components/_post-list.scss | |||
@@ -7,6 +7,9 @@ | |||
7 | --meta: ( | 7 | --meta: ( |
8 | --fg: prop(--colors --fg-hi, $global: true), | 8 | --fg: prop(--colors --fg-hi, $global: true), |
9 | ) | 9 | ) |
10 | ), | ||
11 | --dims: ( | ||
12 | --col-width: 17em | ||
10 | ) | 13 | ) |
11 | )); | 14 | )); |
12 | 15 | ||
@@ -39,5 +42,19 @@ | |||
39 | margin-top: 1px; | 42 | margin-top: 1px; |
40 | } | 43 | } |
41 | } | 44 | } |
45 | |||
46 | @include modifier('grid') { | ||
47 | @include element('category-content') { | ||
48 | display: grid; | ||
49 | grid-template-columns: repeat(auto-fill, minmax(#{prop(--dims --col-width)}, 1fr)); | ||
50 | gap: $line-height * .5rem; | ||
51 | } | ||
52 | |||
53 | @include element('post') { | ||
54 | @include next-twin-element { | ||
55 | margin-top: 0; | ||
56 | } | ||
57 | } | ||
58 | } | ||
42 | } | 59 | } |
43 | } | 60 | } |
diff --git a/assets/css/components/_project.scss b/assets/css/components/_project.scss deleted file mode 100644 index 5248e32..0000000 --- a/assets/css/components/_project.scss +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | @include namespace('project') { | ||
2 | @include store(( | ||
3 | --colors: ( | ||
4 | --bg: prop(--colors --bg-hi, $global: true), | ||
5 | ) | ||
6 | )); | ||
7 | |||
8 | @include component(namespace()) { | ||
9 | position: relative; | ||
10 | overflow: hidden; | ||
11 | box-shadow: prop(--dims --obj-shadow, $global: true) prop(--colors --obj-shadow, $global: true); | ||
12 | |||
13 | &::before { | ||
14 | content: ''; | ||
15 | display: block; | ||
16 | padding-top: 12em; | ||
17 | padding-bottom: 5vw; | ||
18 | background-color: prop(--colors --bg); | ||
19 | } | ||
20 | |||
21 | &:link, | ||
22 | &:visited { | ||
23 | color: currentColor; | ||
24 | text-decoration: none; | ||
25 | |||
26 | &:hover, | ||
27 | &:focus { | ||
28 | @include element('picture') { | ||
29 | opacity: .75; | ||
30 | filter: blur(0); | ||
31 | } | ||
32 | |||
33 | @include element('card') { | ||
34 | transform: translateY(#{prop(--card --dims --hover-offset, $global: true)}); | ||
35 | background-color: prop(--card --colors --hover --bg, $global: true); | ||
36 | color: prop(--card --colors --hover --fg, $global: true); | ||
37 | |||
38 | * { | ||
39 | color: currentColor; | ||
40 | } | ||
41 | } | ||
42 | } | ||
43 | } | ||
44 | |||
45 | @include element('picture') { | ||
46 | display: block; | ||
47 | position: absolute; | ||
48 | z-index: 10; | ||
49 | top: 0; | ||
50 | left: 0; | ||
51 | width: 100%; | ||
52 | height: 100%; | ||
53 | object-fit: cover; | ||
54 | object-position: center center; | ||
55 | transition: opacity .2s; | ||
56 | mask-image: iro-easing-gradient(linear, 340deg, rgba(#000, .75) 7em, ease, #000 26em); | ||
57 | } | ||
58 | |||
59 | @include element('card') { | ||
60 | position: absolute; | ||
61 | z-index: 20; | ||
62 | right: 1em; | ||
63 | bottom: 1em; | ||
64 | min-width: 15em; | ||
65 | max-width: calc(100% - 2em); | ||
66 | } | ||
67 | } | ||
68 | } | ||