chore ignore showcase site

Keep the local showcase deployment outside version control while it is not part of the application release.

Commit
7891984911b9507c36fb038a01d368e6e3329220
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
.gitignore
index 4abc6df8..fd2c5c52 100644..100644
@@ -11,6 +11,9 @@
11 11 # Copyrighted Heavy Duty book material — reference only, never commit
12 12 doc/
13 13
14 Added: # Showcase site — ignored for now
15 Added: site/
16 Added:
14 17 # Editor / OS noise
15 18 *~
16 19 .#*
site/assets/site.css
index f54688e5..00000000 100644..000000
@@ -1,288 +0,0 @@
1 Removed: /* hito showcase — hito.mlnp.fr
2 Removed:
3 Removed: The design tokens, paper texture, and typography are copied verbatim from
4 Removed: the application stylesheet (lib/web/assets/hito.css) so the showcase and the
5 Removed: app read as one product. Only the layout below (hero, features, screenshots,
6 Removed: footer) is specific to the showcase. Keep the token block in sync with the
7 Removed: app when it changes. */
8 Removed:
9 Removed: @import url("https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&family=Work+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,600&display=swap");
10 Removed:
11 Removed: :root {
12 Removed: color-scheme: light;
13 Removed: --paper: #f7f2e8;
14 Removed: --paper-raised: #fffdf8;
15 Removed: --ink: #1a1a16;
16 Removed: --muted-ink: #5b584f;
17 Removed: --rule: #b9b1a2;
18 Removed: --rule-strong: #756f63;
19 Removed: --oxblood: #8c201b;
20 Removed: --oxblood-dark: #65130f;
21 Removed: --brass: #7b5714;
22 Removed: --brass-wash: #f4e7c5;
23 Removed: --evergreen: #1f5b45;
24 Removed: --evergreen-wash: #dcebe2;
25 Removed: --focus: #65130f;
26 Removed: --error: #8c201b;
27 Removed: --font-size-small: 0.875rem;
28 Removed: --font-size-base: 1rem;
29 Removed: --font-size-lead: 1.125rem;
30 Removed: --font-size-heading: 2rem;
31 Removed: --radius: 0.4em;
32 Removed: --sans: "Work Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
33 Removed: --mono: "Courier Prime", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
34 Removed: }
35 Removed:
36 Removed: * { box-sizing: border-box; }
37 Removed:
38 Removed: html { background: var(--paper); }
39 Removed:
40 Removed: body {
41 Removed: min-width: 20rem;
42 Removed: margin: 0;
43 Removed: color: var(--ink);
44 Removed: background: var(--paper);
45 Removed: font: 400 var(--font-size-base)/1.5 var(--sans);
46 Removed: text-rendering: optimizeLegibility;
47 Removed: }
48 Removed:
49 Removed: /* The signature paper rule-grid, shared with the app. */
50 Removed: body::before {
51 Removed: position: fixed;
52 Removed: z-index: -1;
53 Removed: inset: 0;
54 Removed: background-image: linear-gradient(to bottom, rgba(26, 26, 22, 0.035) 1px, transparent 1px);
55 Removed: background-size: 100% 2rem;
56 Removed: content: "";
57 Removed: pointer-events: none;
58 Removed: }
59 Removed:
60 Removed: a {
61 Removed: color: var(--oxblood-dark);
62 Removed: font-weight: 600;
63 Removed: text-decoration-thickness: 0.1em;
64 Removed: text-underline-offset: 0.16em;
65 Removed: }
66 Removed:
67 Removed: a:hover { color: var(--oxblood); }
68 Removed:
69 Removed: a:focus-visible,
70 Removed: summary:focus-visible {
71 Removed: outline: 2px solid var(--focus);
72 Removed: outline-offset: 2px;
73 Removed: }
74 Removed:
75 Removed: /* Shared shell metrics and the wordmark, matching the app masthead. */
76 Removed: .shell {
77 Removed: width: min(100%, 72rem);
78 Removed: margin: 0 auto;
79 Removed: padding: 0 1rem 3rem;
80 Removed: }
81 Removed:
82 Removed: .masthead {
83 Removed: display: flex;
84 Removed: align-items: center;
85 Removed: gap: 1rem;
86 Removed: min-height: 4.75rem;
87 Removed: }
88 Removed:
89 Removed: .brand {
90 Removed: display: inline-flex;
91 Removed: align-items: center;
92 Removed: margin-right: auto;
93 Removed: color: var(--ink);
94 Removed: font: 800 2rem/1 var(--sans);
95 Removed: letter-spacing: -0.03em;
96 Removed: text-decoration: none;
97 Removed: }
98 Removed:
99 Removed: .masthead-cta {
100 Removed: display: inline-flex;
101 Removed: align-items: center;
102 Removed: min-height: 2.75rem;
103 Removed: padding: 0.5rem 0.9rem;
104 Removed: border: 1px solid var(--oxblood-dark);
105 Removed: border-radius: var(--radius);
106 Removed: color: var(--paper-raised);
107 Removed: background: var(--oxblood);
108 Removed: font-weight: 700;
109 Removed: text-decoration: none;
110 Removed: }
111 Removed: .masthead-cta:hover {
112 Removed: color: var(--paper-raised);
113 Removed: background: var(--oxblood-dark);
114 Removed: }
115 Removed:
116 Removed: /* The eyebrow label, shared with the app. */
117 Removed: .eyebrow {
118 Removed: margin: 0 0 0.5rem;
119 Removed: color: var(--oxblood-dark);
120 Removed: font: 700 var(--font-size-small)/1.35 var(--sans);
121 Removed: letter-spacing: 0.09em;
122 Removed: text-transform: uppercase;
123 Removed: }
124 Removed:
125 Removed: /* Hero: the oxblood-topped paper card, matching the app's .page-surface. */
126 Removed: .hero {
127 Removed: border: 1px solid var(--rule-strong);
128 Removed: border-top: 6px solid var(--oxblood);
129 Removed: background: var(--paper-raised);
130 Removed: border-radius: var(--radius);
131 Removed: box-shadow: 0 0.4rem 1.5rem rgba(26, 26, 22, 0.09);
132 Removed: padding: clamp(1.5rem, 4vw, 3rem);
133 Removed: }
134 Removed:
135 Removed: .hero h1 {
136 Removed: margin: 0 0 0.75rem;
137 Removed: font: 800 clamp(2rem, 5vw, 3rem)/1.05 var(--sans);
138 Removed: letter-spacing: -0.02em;
139 Removed: }
140 Removed:
141 Removed: .hero .lead {
142 Removed: max-width: 42rem;
143 Removed: margin: 0 0 1.75rem;
144 Removed: color: var(--muted-ink);
145 Removed: font-size: var(--font-size-lead);
146 Removed: }
147 Removed:
148 Removed: .hero-actions {
149 Removed: display: flex;
150 Removed: flex-wrap: wrap;
151 Removed: gap: 0.75rem;
152 Removed: }
153 Removed:
154 Removed: .button-primary,
155 Removed: .button-secondary {
156 Removed: display: inline-flex;
157 Removed: align-items: center;
158 Removed: min-height: 2.75rem;
159 Removed: padding: 0.6rem 1.1rem;
160 Removed: border-radius: var(--radius);
161 Removed: font-weight: 700;
162 Removed: text-decoration: none;
163 Removed: }
164 Removed: .button-primary {
165 Removed: color: var(--paper-raised);
166 Removed: background: var(--oxblood);
167 Removed: border: 1px solid var(--oxblood-dark);
168 Removed: }
169 Removed: .button-primary:hover {
170 Removed: color: var(--paper-raised);
171 Removed: background: var(--oxblood-dark);
172 Removed: }
173 Removed: .button-secondary {
174 Removed: color: var(--ink);
175 Removed: background: transparent;
176 Removed: border: 1px solid var(--rule-strong);
177 Removed: }
178 Removed: .button-secondary:hover {
179 Removed: color: var(--oxblood-dark);
180 Removed: background: #ece4d5;
181 Removed: }
182 Removed:
183 Removed: /* Section rhythm. */
184 Removed: .section {
185 Removed: margin-top: 3rem;
186 Removed: }
187 Removed: .section > h2 {
188 Removed: margin: 0 0 1.25rem;
189 Removed: font: 800 var(--font-size-heading)/1.1 var(--sans);
190 Removed: letter-spacing: -0.01em;
191 Removed: }
192 Removed:
193 Removed: /* Feature grid: each principle is a paper card. */
194 Removed: .feature-grid {
195 Removed: display: grid;
196 Removed: grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
197 Removed: gap: 1rem;
198 Removed: }
199 Removed:
200 Removed: .feature {
201 Removed: border: 1px solid var(--rule);
202 Removed: border-left: 4px solid var(--brass);
203 Removed: background: var(--paper-raised);
204 Removed: border-radius: var(--radius);
205 Removed: padding: 1.25rem;
206 Removed: }
207 Removed: .feature h3 {
208 Removed: margin: 0 0 0.5rem;
209 Removed: font: 700 var(--font-size-lead)/1.25 var(--sans);
210 Removed: }
211 Removed: .feature p {
212 Removed: margin: 0;
213 Removed: color: var(--muted-ink);
214 Removed: }
215 Removed:
216 Removed: /* Screenshot slots: captioned placeholders, ready for images later. */
217 Removed: .shots {
218 Removed: display: grid;
219 Removed: grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
220 Removed: gap: 1rem;
221 Removed: }
222 Removed: .shot {
223 Removed: margin: 0;
224 Removed: border: 1px solid var(--rule);
225 Removed: background: var(--paper-raised);
226 Removed: border-radius: var(--radius);
227 Removed: overflow: hidden;
228 Removed: }
229 Removed: .shot img {
230 Removed: display: block;
231 Removed: width: 100%;
232 Removed: height: auto;
233 Removed: }
234 Removed: .shot .placeholder {
235 Removed: display: flex;
236 Removed: align-items: center;
237 Removed: justify-content: center;
238 Removed: aspect-ratio: 16 / 10;
239 Removed: color: var(--muted-ink);
240 Removed: background: repeating-linear-gradient(
241 Removed: 45deg,
242 Removed: #efe7d6,
243 Removed: #efe7d6 10px,
244 Removed: var(--paper-raised) 10px,
245 Removed: var(--paper-raised) 20px
246 Removed: );
247 Removed: font: 700 var(--font-size-small)/1.35 var(--mono);
248 Removed: letter-spacing: 0.06em;
249 Removed: text-transform: uppercase;
250 Removed: }
251 Removed: .shot figcaption {
252 Removed: padding: 0.75rem 1rem;
253 Removed: color: var(--muted-ink);
254 Removed: font-size: var(--font-size-small);
255 Removed: border-top: 1px solid var(--rule);
256 Removed: }
257 Removed:
258 Removed: /* Closing call to action. */
259 Removed: .cta-band {
260 Removed: margin-top: 3rem;
261 Removed: border: 1px solid var(--rule-strong);
262 Removed: border-top: 6px solid var(--evergreen);
263 Removed: background: var(--evergreen-wash);
264 Removed: border-radius: var(--radius);
265 Removed: padding: clamp(1.5rem, 4vw, 2.5rem);
266 Removed: text-align: center;
267 Removed: }
268 Removed: .cta-band h2 {
269 Removed: margin: 0 0 0.5rem;
270 Removed: font: 800 var(--font-size-heading)/1.1 var(--sans);
271 Removed: }
272 Removed: .cta-band p {
273 Removed: margin: 0 0 1.5rem;
274 Removed: color: var(--muted-ink);
275 Removed: }
276 Removed:
277 Removed: /* Footer. */
278 Removed: .site-footer {
279 Removed: margin-top: 3rem;
280 Removed: padding-top: 1.5rem;
281 Removed: border-top: 1px solid var(--rule);
282 Removed: color: var(--muted-ink);
283 Removed: font-size: var(--font-size-small);
284 Removed: }
285 Removed:
286 Removed: @media (prefers-reduced-motion: reduce) {
287 Removed: * { scroll-behavior: auto; }
288 Removed: }
site/index.html
index d646fc05..00000000 100644..000000
@@ -1,108 +0,0 @@
1 Removed: <!DOCTYPE html>
2 Removed: <html lang="en">
3 Removed: <head>
4 Removed: <title>hito — a high-intensity training tracker</title>
5 Removed: <meta charset="utf-8" />
6 Removed: <meta name="viewport" content="width=device-width,initial-scale=1" />
7 Removed: <meta
8 Removed: name="description"
9 Removed: content="hito is a training tracker for brief, infrequent, high-intensity workouts. It records what happened and shows your progress, without pushing you to do more."
10 Removed: />
11 Removed: <link rel="stylesheet" href="assets/site.css" />
12 Removed: </head>
13 Removed: <body>
14 Removed: <div class="shell">
15 Removed: <header class="masthead">
16 Removed: <a class="brand" href="/">hito</a>
17 Removed: <a class="masthead-cta" href="https://app.hito.mlnp.fr">Open the app</a>
18 Removed: </header>
19 Removed:
20 Removed: <main>
21 Removed: <section class="hero">
22 Removed: <p class="eyebrow">High-intensity training</p>
23 Removed: <h1>Train hard. Train brief. Grow.</h1>
24 Removed: <p class="lead">
25 Removed: hito is a training tracker for people who lift with high intensity.
26 Removed: It keeps your sessions short and infrequent, records exactly what
27 Removed: you did, and shows your progress — one more rep, a little more
28 Removed: weight. It never asks you to do more than the work that grows you.
29 Removed: </p>
30 Removed: <div class="hero-actions">
31 Removed: <a class="button-primary" href="https://app.hito.mlnp.fr">Open the app</a>
32 Removed: <a class="button-secondary" href="#principles">See the method</a>
33 Removed: </div>
34 Removed: </section>
35 Removed:
36 Removed: <section class="section" id="principles">
37 Removed: <h2>Built around four principles</h2>
38 Removed: <div class="feature-grid">
39 Removed: <article class="feature">
40 Removed: <h3>Intensity, not volume</h3>
41 Removed: <p>
42 Removed: A working set runs to the point where one more rep is not
43 Removed: possible. That effort is what signals growth. hito treats the
44 Removed: set as complete at that point — not at a rep count.
45 Removed: </p>
46 Removed: </article>
47 Removed: <article class="feature">
48 Removed: <h3>Recovery comes first</h3>
49 Removed: <p>
50 Removed: The gym stimulates growth; rest produces it. hito tracks
51 Removed: recovery between sessions, so a hard workout gates the next one
52 Removed: and you train again only when you are ready.
53 Removed: </p>
54 Removed: </article>
55 Removed: <article class="feature">
56 Removed: <h3>The minimum that works</h3>
57 Removed: <p>
58 Removed: More sets are not more progress. hito favours the smallest
59 Removed: effective dose and flags rising volume as a warning to watch,
60 Removed: never a target to chase.
61 Removed: </p>
62 Removed: </article>
63 Removed: <article class="feature">
64 Removed: <h3>Progress you can see</h3>
65 Removed: <p>
66 Removed: Progress is a clear signal: more reps, more weight, or both.
67 Removed: hito reads your logbook and shows the trend, so each session
68 Removed: has a plain measure of whether you moved forward.
69 Removed: </p>
70 Removed: </article>
71 Removed: </div>
72 Removed: </section>
73 Removed:
74 Removed: <section class="section" id="screenshots">
75 Removed: <h2>A look inside</h2>
76 Removed: <div class="shots">
77 Removed: <figure class="shot">
78 Removed: <div class="placeholder">Screenshot</div>
79 Removed: <figcaption>Your routine — the exercises and the load for the next session.</figcaption>
80 Removed: </figure>
81 Removed: <figure class="shot">
82 Removed: <div class="placeholder">Screenshot</div>
83 Removed: <figcaption>The workout in progress — log each set as you take it to failure.</figcaption>
84 Removed: </figure>
85 Removed: <figure class="shot">
86 Removed: <div class="placeholder">Screenshot</div>
87 Removed: <figcaption>The logbook — every session recorded, with the progress trend.</figcaption>
88 Removed: </figure>
89 Removed: </div>
90 Removed: </section>
91 Removed:
92 Removed: <section class="cta-band">
93 Removed: <h2>Start your logbook</h2>
94 Removed: <p>Brief, infrequent, intense. hito keeps the record so you can focus on the work.</p>
95 Removed: <a class="button-primary" href="https://app.hito.mlnp.fr">Open the app</a>
96 Removed: </section>
97 Removed: </main>
98 Removed:
99 Removed: <footer class="site-footer">
100 Removed: <p>
101 Removed: hito is a personal training tracker. Its method is inspired by Mike
102 Removed: Mentzer's approach to high-intensity training. It is not medical or
103 Removed: fitness advice; train within your own limits.
104 Removed: </p>
105 Removed: </footer>
106 Removed: </div>
107 Removed: </body>
108 Removed: </html>