@atom63/resume 0.2.0 → 0.2.1

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.
package/dist/index.css DELETED
@@ -1,328 +0,0 @@
1
- /* src/styles/tokens.css */
2
- [data-resume-document] {
3
- --doc-meta-col: 11rem;
4
- --doc-resume-cols: 1fr 2fr;
5
- --doc-col-gap: 0.75rem;
6
- --doc-col-pad: 1.5rem;
7
- --doc-block-gap: 0.375rem;
8
- --doc-section-gap: 0.5rem;
9
- --doc-group-gap: 0.125rem;
10
- --doc-text: 10px;
11
- --doc-text-xs: 8px;
12
- --doc-leading: 1.4;
13
- --doc-leading-heading: 1.5;
14
- --doc-ink: #000;
15
- --doc-ink-body: #404040;
16
- --doc-ink-muted: #737373;
17
- --doc-ink-faint: #a3a3a3;
18
- --doc-rule: #d4d4d4;
19
- }
20
-
21
- /* src/styles/document.css */
22
- .doc-meta-grid {
23
- display: grid;
24
- min-width: 0;
25
- grid-template-columns: var(--doc-meta-col) minmax(0, 1fr);
26
- gap: var(--doc-col-gap);
27
- }
28
- .doc-resume-grid {
29
- display: grid;
30
- min-width: 0;
31
- grid-template-columns: var(--doc-resume-cols);
32
- }
33
- .doc-col {
34
- display: flex;
35
- min-width: 0;
36
- flex-direction: column;
37
- gap: var(--doc-block-gap);
38
- }
39
- .doc-group {
40
- display: flex;
41
- flex-direction: column;
42
- gap: var(--doc-group-gap);
43
- }
44
- .doc-section {
45
- margin-top: var(--doc-section-gap);
46
- }
47
- .doc-body {
48
- font-size: var(--doc-text);
49
- line-height: var(--doc-leading);
50
- color: var(--doc-ink-body);
51
- overflow-wrap: break-word;
52
- }
53
- .doc-meta {
54
- font-size: var(--doc-text);
55
- line-height: var(--doc-leading);
56
- color: var(--doc-ink-muted);
57
- }
58
- .doc-heading {
59
- font-size: var(--doc-text);
60
- line-height: var(--doc-leading-heading);
61
- color: var(--doc-ink);
62
- font-weight: 700;
63
- text-transform: uppercase;
64
- }
65
- .doc-title {
66
- font-size: var(--doc-text);
67
- line-height: 1;
68
- color: var(--doc-ink);
69
- font-weight: 700;
70
- text-transform: uppercase;
71
- }
72
- .doc-subheading {
73
- font-size: var(--doc-text);
74
- line-height: 1;
75
- color: var(--doc-ink);
76
- font-weight: 600;
77
- }
78
- .doc-strong {
79
- color: var(--doc-ink);
80
- font-weight: 600;
81
- }
82
- .doc-link {
83
- color: var(--doc-ink-body);
84
- text-decoration: underline;
85
- touch-action: manipulation;
86
- }
87
- .doc-rule {
88
- margin: 0.25rem 0;
89
- border-bottom: 1px solid var(--doc-rule);
90
- }
91
- .doc-footer {
92
- font-size: var(--doc-text-xs);
93
- color: var(--doc-ink-faint);
94
- margin-top: auto;
95
- display: flex;
96
- align-items: flex-end;
97
- justify-content: space-between;
98
- }
99
- .doc-footer a {
100
- color: inherit;
101
- }
102
- .doc-header {
103
- margin-bottom: 0.75rem;
104
- }
105
- .doc-header-col {
106
- display: flex;
107
- min-width: 0;
108
- flex-direction: column;
109
- justify-content: space-between;
110
- }
111
- .doc-header-left {
112
- padding-right: var(--doc-col-pad);
113
- }
114
- .doc-header-right {
115
- padding-left: var(--doc-col-pad);
116
- }
117
- .doc-header-right > p + p {
118
- margin-top: 0.125rem;
119
- }
120
- .doc-links {
121
- margin-top: 0.75rem;
122
- }
123
- .doc-links > p {
124
- margin-top: 0;
125
- color: var(--doc-ink-muted);
126
- }
127
- .doc-links a {
128
- color: inherit;
129
- }
130
- .doc-links em {
131
- color: var(--doc-ink-faint);
132
- }
133
- .doc-entry-body {
134
- min-width: 0;
135
- }
136
- .doc-col-sidebar {
137
- grid-column-start: 1;
138
- grid-row-start: 1;
139
- padding-right: var(--doc-col-pad);
140
- }
141
- .doc-col-main {
142
- grid-column-start: 2;
143
- grid-row-start: 1;
144
- padding-left: var(--doc-col-pad);
145
- }
146
- .doc-list {
147
- list-style: disc;
148
- padding-left: 0.75rem;
149
- }
150
- .doc-em {
151
- font-style: normal;
152
- }
153
- .doc-hr {
154
- margin: 0.75rem 0;
155
- }
156
- .doc-pages {
157
- display: flex;
158
- flex-direction: column;
159
- }
160
- .doc-page {
161
- position: relative;
162
- display: flex;
163
- flex-direction: column;
164
- background: #fff;
165
- color: #000;
166
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
167
- }
168
-
169
- /* src/styles/viewer.css */
170
- #resume-print-target,
171
- #resume-print-target * {
172
- -webkit-text-size-adjust: none;
173
- text-size-adjust: none;
174
- }
175
- [data-resume-scale-root] {
176
- transform-origin: top left;
177
- }
178
- .resume-viewer {
179
- display: flex;
180
- flex-direction: column;
181
- height: 100%;
182
- overflow: hidden;
183
- }
184
- .resume-viewer-toolbar {
185
- display: flex;
186
- align-items: center;
187
- justify-content: space-between;
188
- gap: 0.75rem;
189
- padding: 0.375rem 0.75rem;
190
- border-bottom: 1px solid rgb(0 0 0 / 0.08);
191
- background: #fff;
192
- flex: 0 0 auto;
193
- }
194
- .resume-viewer-pagecount {
195
- font-size: 0.8125rem;
196
- color: rgb(0 0 0 / 0.55);
197
- }
198
- .resume-viewer-controls {
199
- display: flex;
200
- align-items: center;
201
- gap: 0.25rem;
202
- }
203
- .resume-viewer-btn-group {
204
- display: flex;
205
- align-items: center;
206
- }
207
- .resume-viewer-btn {
208
- display: inline-flex;
209
- align-items: center;
210
- justify-content: center;
211
- height: 2rem;
212
- min-width: 2rem;
213
- padding: 0 0.375rem;
214
- border: 0;
215
- border-radius: 0.375rem;
216
- background: transparent;
217
- color: rgb(0 0 0 / 0.7);
218
- font-size: 0.8125rem;
219
- cursor: pointer;
220
- }
221
- .resume-viewer-btn:hover:not(:disabled) {
222
- background: rgb(0 0 0 / 0.06);
223
- }
224
- .resume-viewer-btn:disabled {
225
- opacity: 0.4;
226
- cursor: default;
227
- }
228
- .resume-viewer-btn-active {
229
- background: rgb(0 0 0 / 0.08);
230
- color: rgb(0 0 0 / 0.9);
231
- }
232
- .resume-viewer-btn-text {
233
- padding: 0 0.625rem;
234
- }
235
- .resume-viewer-zoom-label {
236
- display: inline-flex;
237
- align-items: center;
238
- justify-content: center;
239
- height: 2rem;
240
- width: 3rem;
241
- border: 0;
242
- border-radius: 0.375rem;
243
- background: transparent;
244
- color: rgb(0 0 0 / 0.55);
245
- font-size: 0.8125rem;
246
- font-variant-numeric: tabular-nums;
247
- cursor: pointer;
248
- }
249
- .resume-viewer-zoom-label:hover {
250
- background: rgb(0 0 0 / 0.06);
251
- }
252
- .resume-viewer-icon {
253
- width: 1rem;
254
- height: 1rem;
255
- }
256
- .resume-viewer-scroll {
257
- flex: 1 1 auto;
258
- min-height: 0;
259
- overflow: auto;
260
- background: rgb(244 244 245);
261
- }
262
- .resume-viewer-scroll-grab {
263
- cursor: grab;
264
- }
265
- .resume-viewer-scroll-grabbing {
266
- cursor: grabbing;
267
- }
268
- .resume-viewer-scroll-mobile {
269
- touch-action: none;
270
- user-select: none;
271
- }
272
- .resume-viewer-stage {
273
- margin-top: 1.5rem;
274
- margin-bottom: 1.5rem;
275
- padding-left: 1rem;
276
- padding-right: 1rem;
277
- }
278
- .resume-viewer-page-box {
279
- margin-left: auto;
280
- margin-right: auto;
281
- }
282
- .resume-viewer-scale-root {
283
- position: relative;
284
- }
285
- .resume-viewer-content {
286
- position: relative;
287
- display: flex;
288
- flex-direction: column;
289
- color: #000;
290
- }
291
- [data-slot=scroll-area-viewport][data-pan-active],
292
- .resume-viewer-scroll[data-pan-active] {
293
- background-color: color-mix(in oklch, var(--muted) 42%, transparent);
294
- }
295
- @media (prefers-reduced-motion: reduce) {
296
- [data-slot=scroll-area-viewport][data-pan-active],
297
- .resume-viewer-scroll[data-pan-active] {
298
- transition: none;
299
- }
300
- }
301
- #resume-print-target a,
302
- #resume-print-target button {
303
- touch-action: manipulation;
304
- }
305
- @media print {
306
- body:has(#resume-print-clone) > :not(#resume-print-clone) {
307
- display: none !important;
308
- }
309
- #resume-print-clone {
310
- color: black !important;
311
- background: white !important;
312
- }
313
- #resume-print-clone > div {
314
- gap: 0 !important;
315
- }
316
- [data-resume-page] {
317
- box-shadow: none !important;
318
- break-after: page;
319
- break-inside: avoid;
320
- }
321
- [data-resume-page]:last-child {
322
- break-after: auto;
323
- }
324
- @page {
325
- margin: 0;
326
- }
327
- }
328
- /*# sourceMappingURL=index.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/styles/tokens.css","../src/styles/document.css","../src/styles/viewer.css"],"sourcesContent":["/*\n * @atom63/resume — document design tokens (the --doc-* vocabulary).\n *\n * The single source of truth for the resume/CV look. Override any token (e.g.\n * in your own stylesheet, scoped to [data-resume-document]) to restyle the\n * resume and CV together; the React primitives only compose these.\n *\n * Page SIZE is not a token — it is fixed numeric geometry (see geometry.ts) and\n * is selected with the ResumeViewer `pageSize` prop ('letter' | 'a4').\n *\n * Print-fixed by design: doc sizes are absolute px for PDF fidelity, independent\n * of any host typography-scale setting. The font *family* is inherited (so the\n * document follows the host font), which is why pagination re-measures on font\n * change.\n *\n * NOTE: --doc-block-gap MUST stay in sync with BLOCK_GAP_PX in geometry.ts (the\n * JS packer reads the same number to compute page breaks).\n */\n[data-resume-document] {\n /* Document layout */\n --doc-meta-col: 11rem; /* left meta/label column (header name, section label, year|role) */\n --doc-resume-cols: 1fr 2fr; /* resume sidebar | main split */\n --doc-col-gap: 0.75rem; /* gap between the meta column and content */\n --doc-col-pad: 1.5rem; /* resume two-column inner gutter */\n --doc-block-gap: 0.375rem; /* between blocks within a column (== BLOCK_GAP_PX) */\n --doc-section-gap: 0.5rem; /* space above a section */\n --doc-group-gap: 0.125rem; /* within a tight group (title + meta line) */\n\n /* Type */\n --doc-text: 10px;\n --doc-text-xs: 8px;\n --doc-leading: 1.4;\n --doc-leading-heading: 1.5;\n\n /* Ink (on the white page) */\n --doc-ink: #000; /* headings, strong */\n --doc-ink-body: #404040; /* body copy (neutral-700) */\n --doc-ink-muted: #737373; /* meta / labels (neutral-500) */\n --doc-ink-faint: #a3a3a3; /* footer, faint detail (neutral-400) */\n --doc-rule: #d4d4d4; /* dividers (neutral-300) */\n}\n","/*\n * Resume & CV document layout + type primitives. These classes only COMPOSE the\n * design tokens — the token vocabulary itself (the paper and doc custom\n * properties) lives in tokens.css (imported separately, or together via\n * styles.css). Keep this file token-free so consumers can adopt just the tokens,\n * or restyle without forking these classes.\n */\n\n/* Layout primitives */\n.doc-meta-grid {\n display: grid;\n min-width: 0;\n grid-template-columns: var(--doc-meta-col) minmax(0, 1fr);\n gap: var(--doc-col-gap);\n}\n.doc-resume-grid {\n display: grid;\n min-width: 0;\n grid-template-columns: var(--doc-resume-cols);\n}\n.doc-col {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--doc-block-gap);\n}\n.doc-group {\n display: flex;\n flex-direction: column;\n gap: var(--doc-group-gap);\n}\n.doc-section {\n margin-top: var(--doc-section-gap);\n}\n\n/* Type primitives */\n.doc-body {\n font-size: var(--doc-text);\n line-height: var(--doc-leading);\n color: var(--doc-ink-body);\n overflow-wrap: break-word;\n}\n.doc-meta {\n font-size: var(--doc-text);\n line-height: var(--doc-leading);\n color: var(--doc-ink-muted);\n}\n.doc-heading {\n font-size: var(--doc-text);\n line-height: var(--doc-leading-heading);\n color: var(--doc-ink);\n font-weight: 700;\n text-transform: uppercase;\n}\n.doc-title {\n font-size: var(--doc-text);\n line-height: 1;\n color: var(--doc-ink);\n font-weight: 700;\n text-transform: uppercase;\n}\n.doc-subheading {\n font-size: var(--doc-text);\n line-height: 1;\n color: var(--doc-ink);\n font-weight: 600;\n}\n.doc-strong {\n color: var(--doc-ink);\n font-weight: 600;\n}\n.doc-link {\n color: var(--doc-ink-body);\n text-decoration: underline;\n /* touch-manipulation equivalent for links */\n touch-action: manipulation;\n}\n.doc-rule {\n margin: 0.25rem 0;\n border-bottom: 1px solid var(--doc-rule);\n}\n.doc-footer {\n font-size: var(--doc-text-xs);\n color: var(--doc-ink-faint);\n /* Layout (replacing Tailwind utilities) */\n margin-top: auto;\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n}\n.doc-footer a {\n color: inherit;\n}\n\n/* Header / layout helpers (replacing Tailwind utilities) */\n.doc-header {\n margin-bottom: 0.75rem;\n}\n.doc-header-col {\n display: flex;\n min-width: 0;\n flex-direction: column;\n justify-content: space-between;\n}\n.doc-header-left {\n padding-right: var(--doc-col-pad);\n}\n.doc-header-right {\n padding-left: var(--doc-col-pad);\n}\n.doc-header-right > p + p {\n margin-top: 0.125rem;\n}\n\n.doc-links {\n margin-top: 0.75rem;\n}\n.doc-links > p {\n margin-top: 0;\n color: var(--doc-ink-muted);\n}\n.doc-links a {\n color: inherit;\n}\n.doc-links em {\n color: var(--doc-ink-faint);\n}\n\n.doc-entry-body {\n min-width: 0;\n}\n\n/* Two-column grid placement (sidebar | main), used on every page incl. continuations */\n.doc-col-sidebar {\n grid-column-start: 1;\n grid-row-start: 1;\n padding-right: var(--doc-col-pad);\n}\n.doc-col-main {\n grid-column-start: 2;\n grid-row-start: 1;\n padding-left: var(--doc-col-pad);\n}\n\n.doc-list {\n list-style: disc;\n padding-left: 0.75rem;\n}\n.doc-em {\n font-style: normal;\n}\n.doc-hr {\n margin: 0.75rem 0;\n}\n\n/* Page frame (Tailwind shadow-lg + bg-white + text-black + flex column) */\n.doc-pages {\n display: flex;\n flex-direction: column;\n}\n.doc-page {\n position: relative;\n display: flex;\n flex-direction: column;\n background: #fff;\n color: #000;\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n","/* Screen preview — keep letter layout stable on mobile browsers. */\n#resume-print-target,\n#resume-print-target * {\n -webkit-text-size-adjust: none;\n text-size-adjust: none;\n}\n\n[data-resume-scale-root] {\n transform-origin: top left;\n}\n\n/* ResumeViewer chrome — the standalone component's own layout (toolbar +\n scroll viewport + scaled page stage). Tailwind-free; the package ships these\n classes so the viewer is self-styled. The neutral viewport background mirrors\n the old muted canvas; the page frames come from the document and paper tokens\n defined in tokens.css and document.css. */\n.resume-viewer {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n.resume-viewer-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 0.375rem 0.75rem;\n border-bottom: 1px solid rgb(0 0 0 / 0.08);\n background: #fff;\n flex: 0 0 auto;\n}\n\n.resume-viewer-pagecount {\n font-size: 0.8125rem;\n color: rgb(0 0 0 / 0.55);\n}\n\n.resume-viewer-controls {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.resume-viewer-btn-group {\n display: flex;\n align-items: center;\n}\n\n.resume-viewer-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 2rem;\n min-width: 2rem;\n padding: 0 0.375rem;\n border: 0;\n border-radius: 0.375rem;\n background: transparent;\n color: rgb(0 0 0 / 0.7);\n font-size: 0.8125rem;\n cursor: pointer;\n}\n\n.resume-viewer-btn:hover:not(:disabled) {\n background: rgb(0 0 0 / 0.06);\n}\n\n.resume-viewer-btn:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.resume-viewer-btn-active {\n background: rgb(0 0 0 / 0.08);\n color: rgb(0 0 0 / 0.9);\n}\n\n.resume-viewer-btn-text {\n padding: 0 0.625rem;\n}\n\n.resume-viewer-zoom-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 2rem;\n width: 3rem;\n border: 0;\n border-radius: 0.375rem;\n background: transparent;\n color: rgb(0 0 0 / 0.55);\n font-size: 0.8125rem;\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.resume-viewer-zoom-label:hover {\n background: rgb(0 0 0 / 0.06);\n}\n\n.resume-viewer-icon {\n width: 1rem;\n height: 1rem;\n}\n\n.resume-viewer-scroll {\n flex: 1 1 auto;\n min-height: 0;\n overflow: auto;\n background: rgb(244 244 245);\n}\n\n.resume-viewer-scroll-grab {\n cursor: grab;\n}\n\n.resume-viewer-scroll-grabbing {\n cursor: grabbing;\n}\n\n.resume-viewer-scroll-mobile {\n touch-action: none;\n user-select: none;\n}\n\n.resume-viewer-stage {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.resume-viewer-page-box {\n margin-left: auto;\n margin-right: auto;\n}\n\n.resume-viewer-scale-root {\n position: relative;\n}\n\n.resume-viewer-content {\n position: relative;\n display: flex;\n flex-direction: column;\n color: #000;\n}\n\n[data-slot=\"scroll-area-viewport\"][data-pan-active],\n.resume-viewer-scroll[data-pan-active] {\n background-color: color-mix(in oklch, var(--muted) 42%, transparent);\n}\n\n@media (prefers-reduced-motion: reduce) {\n [data-slot=\"scroll-area-viewport\"][data-pan-active],\n .resume-viewer-scroll[data-pan-active] {\n transition: none;\n }\n}\n\n#resume-print-target a,\n#resume-print-target button {\n touch-action: manipulation;\n}\n\n@media print {\n /* Body children are hidden/restored via JS (beforeprint/afterprint)\n to preserve <style>/<link>/<script> tags. */\n\n /* Hard isolation: while the resume's print clone exists, hide every other\n direct body child (other app windows, stray clones) regardless of JS\n hide-ordering across apps. Scoped to the clone's presence so it never\n affects another app's print. */\n body:has(#resume-print-clone) > :not(#resume-print-clone) {\n display: none !important;\n }\n\n /* The clone is a plain wrapper around the engine's real 8.5x11 page frames\n (a direct child of body — no positioning needed). */\n #resume-print-clone {\n color: black !important;\n background: white !important;\n }\n\n /* Frames stack with a screen-only gap; remove it so each maps 1:1 to a page. */\n #resume-print-clone > div {\n gap: 0 !important;\n }\n\n [data-resume-page] {\n box-shadow: none !important;\n break-after: page;\n break-inside: avoid;\n }\n [data-resume-page]:last-child {\n break-after: auto;\n }\n\n /* `size` is set at runtime by the viewer (per the active pageSize); see\n ResumeViewer's injected <style>. Only the zero margin is static here. */\n @page {\n margin: 0;\n }\n}\n"],"mappings":"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","names":[]}