@casoon/pages-theme 0.12.8 → 0.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,8 +28,9 @@ const { title, href, label } = Astro.props;
28
28
  text-align: center;
29
29
  }
30
30
  h2 {
31
- max-width: 14ch;
31
+ max-width: 18ch;
32
32
  margin: 0;
33
+ text-wrap: balance;
33
34
  color: #fff;
34
35
  font-size: clamp(40px, 6vw, 70px);
35
36
  font-weight: 600;
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  import config from 'virtual:casoon-pages/config';
3
- import logo from '../assets/casoon-logo.svg';
4
3
  import logoDark from '../assets/casoon-logo-dark.svg';
5
4
  import { t } from '../lib/i18n';
6
5
  import { CASOON_URL, catalogUrl, url } from '../lib/url';
@@ -41,33 +40,35 @@ const columns = [
41
40
  ---
42
41
 
43
42
  <footer class="footer">
44
- <div class="cols">
45
- <div>
46
- <a class="logo" href={CASOON_URL}>
47
- <img class="logo-light" src={logo.src} width="150" height="41" alt="CASOON" />
48
- <img class="logo-dark" src={logoDark.src} width="150" height="41" alt="CASOON" />
49
- </a>
50
- <p>{config.description}</p>
51
- <p class="by">{s.footerBy} · Jörn Seidel</p>
43
+ <div class="top">
44
+ <div class="intro">
45
+ <p class="name">{config.name}</p>
46
+ <p class="description">{config.description}</p>
47
+ </div>
48
+ <div class="cols">
49
+ {
50
+ columns.filter((col) => col.links.length > 0).map((col) => (
51
+ <nav aria-label={col.title}>
52
+ <p class="title">{col.title}</p>
53
+ <ul>
54
+ {col.links.map((link) => (
55
+ <li>
56
+ <a href={link.href}>{link.label}</a>
57
+ </li>
58
+ ))}
59
+ </ul>
60
+ </nav>
61
+ ))
62
+ }
52
63
  </div>
53
- {
54
- columns.filter((col) => col.links.length > 0).map((col) => (
55
- <nav aria-label={col.title}>
56
- <p class="title">{col.title}</p>
57
- <ul>
58
- {col.links.map((link) => (
59
- <li>
60
- <a href={link.href}>{link.label}</a>
61
- </li>
62
- ))}
63
- </ul>
64
- </nav>
65
- ))
66
- }
67
64
  </div>
68
65
  <div class="bottom">
69
- <span>{config.license && `${s.license(config.license)} · `}© {new Date().getFullYear()} Jörn Seidel</span>
66
+ <a class="by" href={CASOON_URL}>
67
+ <img src={logoDark.src} width="150" height="41" alt="CASOON" />
68
+ <span>{s.footerBy} · Jörn Seidel</span>
69
+ </a>
70
70
  <span class="legal">
71
+ <span>{config.license && `${s.license(config.license)} · `}© {new Date().getFullYear()}</span>
71
72
  <a href={IMPRESSUM}>{s.imprint}</a>
72
73
  <a href={DATENSCHUTZ}>{s.privacyPolicy}</a>
73
74
  </span>
@@ -78,47 +79,56 @@ const columns = [
78
79
  /* Black footer in both themes. */
79
80
  .footer {
80
81
  --text: #b4b1ac;
81
- --muted: #b4b1ac;
82
+ --muted: #8f8b85;
82
83
  --heading: #fff;
83
84
  --border: rgb(255 255 255 / 0.12);
84
85
 
85
86
  background: #11100e;
86
87
  color: var(--text);
87
- font-size: 14px;
88
+ font-size: 15px;
88
89
  }
89
- .cols {
90
+ .top {
90
91
  display: grid;
91
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
92
- gap: 40px;
92
+ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
93
+ gap: 48px 64px;
93
94
  max-width: var(--max);
94
95
  margin: 0 auto;
95
- padding: 80px 24px 48px;
96
+ padding: 96px 24px 72px;
96
97
  }
97
- .logo {
98
- display: inline-block;
99
- margin-bottom: 14px;
98
+ .intro p {
99
+ margin: 0;
100
100
  }
101
- .logo img {
102
- display: block;
103
- width: 120px;
104
- height: auto;
101
+ .name {
102
+ color: var(--heading);
103
+ font-size: clamp(36px, 4.5vw, 56px);
104
+ font-weight: 600;
105
+ letter-spacing: -0.03em;
106
+ line-height: 1;
105
107
  }
106
- .logo-light {
107
- display: none !important;
108
+ .name::after {
109
+ content: '.';
110
+ color: var(--accent-fill);
108
111
  }
109
- p {
110
- margin: 0 0 6px;
111
- max-width: 32ch;
112
+ .intro .description {
113
+ max-width: 34ch;
114
+ margin-top: 20px;
115
+ color: var(--text);
116
+ font-size: 17px;
117
+ line-height: 1.5;
118
+ text-wrap: pretty;
112
119
  }
113
- .by {
114
- color: var(--muted);
115
- font-size: 12.5px;
120
+ .cols {
121
+ display: grid;
122
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
123
+ gap: 32px;
116
124
  }
117
125
  .title {
118
- margin-bottom: 16px;
119
- color: var(--heading);
120
- font-size: 18px;
121
- font-weight: 500;
126
+ margin: 0 0 18px;
127
+ color: var(--muted);
128
+ font-family: var(--font-mono);
129
+ font-size: 12px;
130
+ letter-spacing: 0.08em;
131
+ text-transform: uppercase;
122
132
  }
123
133
  ul {
124
134
  display: flex;
@@ -129,27 +139,50 @@ const columns = [
129
139
  list-style: none;
130
140
  }
131
141
  ul a {
132
- color: var(--text);
142
+ color: var(--heading);
143
+ text-decoration: underline;
144
+ text-decoration-color: transparent;
145
+ text-underline-offset: 4px;
146
+ transition: text-decoration-color 0.2s;
133
147
  }
134
148
  ul a:hover {
135
- color: var(--heading);
149
+ text-decoration-color: currentColor;
150
+ }
151
+ ul a[href^='http']::after {
152
+ content: ' ↗' / '';
153
+ color: var(--muted);
136
154
  }
137
155
  .bottom {
138
156
  display: flex;
139
157
  flex-wrap: wrap;
158
+ align-items: center;
140
159
  justify-content: space-between;
141
- gap: 16px;
160
+ gap: 16px 32px;
142
161
  max-width: var(--max);
143
162
  margin: 0 auto;
144
- padding: 16px 24px 40px;
163
+ padding: 24px 24px 40px;
145
164
  border-top: 1px solid var(--border);
146
165
  color: var(--muted);
147
166
  font-size: 13px;
148
167
  }
168
+ .by {
169
+ display: inline-flex;
170
+ align-items: center;
171
+ gap: 14px;
172
+ color: var(--muted);
173
+ }
174
+ .by img {
175
+ display: block;
176
+ width: 96px;
177
+ height: auto;
178
+ }
179
+ .by:hover {
180
+ color: var(--heading);
181
+ }
149
182
  .legal {
150
183
  display: flex;
151
184
  flex-wrap: wrap;
152
- gap: 18px;
185
+ gap: 8px 20px;
153
186
  }
154
187
  .legal a {
155
188
  color: var(--muted);
@@ -157,4 +190,10 @@ const columns = [
157
190
  .legal a:hover {
158
191
  color: var(--heading);
159
192
  }
193
+ @media (max-width: 760px) {
194
+ .top {
195
+ grid-template-columns: 1fr;
196
+ padding-top: 72px;
197
+ }
198
+ }
160
199
  </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casoon/pages-theme",
3
- "version": "0.12.8",
3
+ "version": "0.12.9",
4
4
  "description": "Shared Astro theme for the GitHub Pages sites of CASOON open-source projects",
5
5
  "type": "module",
6
6
  "license": "MIT",