mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-10-03 18:23:47 +10:00
feat(templates): add Porygon and Smeargle templates
Porygon lays the resume out as a ruled form after the Japanese résumé form (rirekisho). The header is a block of bordered field cells framed in the accent color with the photo in a cell of its own, and every section is a table with a solid title bar over one ruled cell per entry. Touching cells share one tinted rule. Smeargle sets the resume like a magazine feature: the headline as an uppercase kicker over a display name, the summary as an italic standfirst, and italic section headings at the user's heading size. Both are one-column and ATS-safe. Register them in the schema, renderer, semantic manifests and gallery, add gallery and docs previews, extract the new descriptions, regenerate the API spec, and list them wherever the docs enumerate templates.
This commit is contained in:
@@ -114,8 +114,10 @@ body:
|
||||
- Meowth
|
||||
- Onyx
|
||||
- Pikachu
|
||||
- Porygon
|
||||
- Rhyhorn
|
||||
- Scizor
|
||||
- Smeargle
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
|
||||
+2
-1
@@ -39,7 +39,8 @@ Gemini, Vercel AI Gateway, OpenRouter, Mistral AI, Cohere, xAI Grok, Groq, DeepS
|
||||
Fireworks, Cerebras, Perplexity, Ollama.
|
||||
|
||||
Template names are proper nouns and are never translated: Azurill, Bronzor, Chikorita, Ditgar,
|
||||
Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, Rhyhorn, Scizor.
|
||||
Ditto, Gengar, Glalie, Kakuna, Lapras, Leafish, Meowth, Onyx, Pikachu, Porygon, Rhyhorn, Scizor,
|
||||
Smeargle.
|
||||
|
||||
## The document
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ You own your data. The codebase is open source under the MIT license, with no tr
|
||||
|
||||
**Templates**
|
||||
|
||||
- 15 templates to choose from
|
||||
- 17 templates to choose from
|
||||
- A4 and Letter page sizes
|
||||
- Customizable colors, fonts, and spacing
|
||||
- Structured Style Rules for section and text styling
|
||||
@@ -140,6 +140,14 @@ You own your data. The codebase is open source under the MIT license, with no tr
|
||||
<img src="apps/web/public/templates/jpg/scizor.jpg" alt="Scizor" width="150" />
|
||||
<br /><sub><b>Scizor</b></sub>
|
||||
</td>
|
||||
<td align="center">
|
||||
<img src="apps/web/public/templates/jpg/porygon.jpg" alt="Porygon" width="150" />
|
||||
<br /><sub><b>Porygon</b></sub>
|
||||
</td>
|
||||
<td align="center">
|
||||
<img src="apps/web/public/templates/jpg/smeargle.jpg" alt="Smeargle" width="150" />
|
||||
<br /><sub><b>Smeargle</b></sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Tans besig om te registreer..."
|
||||
msgid "since last view"
|
||||
msgstr "sedert laaste aansig"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Enkelkolom met 'n magenta linkerrandaksent; kompak en doeltreffend vir intreevlak- of internskap-aansoeke."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "በመመዝገብ ላይ…"
|
||||
msgid "since last view"
|
||||
msgstr "ካለፈው እይታ ጀምሮ"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "አንድ-አምድ የሆነ፣ ማጀንታ የግራ ክልል አስተካክል ያለው፣ የጀማሪ ወይም ስብስክ ስራ ማመልከቻዎች ለሚጠቅም ጠባብ እና ቀላል።"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "جاري التسجيل..."
|
||||
msgid "since last view"
|
||||
msgstr "منذ آخر مشاهدة"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "عمود واحد مع حافة يسارية بلون أرجواني؛ مدمج وفعّال لطلبات الوظائف المبتدئة أو فترات التدريب."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Qeydiyyat gedir..."
|
||||
msgid "since last view"
|
||||
msgstr "son baxışdan"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Tək sütunlu, sol tərəfdə magenta haşiyə vurğulu; başlanğıc və ya təcrübə proqramı müraciətləri üçün yığcam və səmərəli."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Регистриране..."
|
||||
msgid "since last view"
|
||||
msgstr "от последния преглед"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Една колона с пурпурен акцент по лявата рамка; компактна и ефективна за кандидатстване за начално ниво или стажове."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "সাইন আপ হচ্ছে..."
|
||||
msgid "since last view"
|
||||
msgstr "শেষ দেখার পর থেকে"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "এক কলামের লেআউট, ম্যাজেন্টা বাম বর্ডার অ্যাকসেন্টসহ; ইন্টার্নশিপ বা এন্ট্রি‑লেভেল আবেদনের জন্য কমপ্যাক্ট ও কার্যকরী।"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "S’està creant el compte..."
|
||||
msgid "since last view"
|
||||
msgstr "des de l'última vista"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Una sola columna amb un accent de vora esquerra magenta; compacte i eficient per a sol·licituds de nivell inicial o pràctiques."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrace…"
|
||||
msgid "since last view"
|
||||
msgstr "od posledního pohledu"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Jednosloupcové s magentovým levým okrajem; kompaktní a efektivní pro juniorské pozice nebo stáže."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Tilmeld dig..."
|
||||
msgid "since last view"
|
||||
msgstr "siden sidste visning"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Enkeltkolonne med magentafarvet venstre kantmarkering; kompakt og effektiv til entry-level- eller praktikansøgninger."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrierung läuft..."
|
||||
msgid "since last view"
|
||||
msgstr "seit dem letzten Aufruf"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Einspaltig mit magenta-farbener linker Randakzentuierung; kompakt und effizient für Einstiegs- oder Praktikumsbewerbungen."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Εγγραφή..."
|
||||
msgid "since last view"
|
||||
msgstr "από την τελευταία προβολή"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Μονή στήλη με ματζέντα αριστερό περίγραμμα· συμπαγές και αποδοτικό για αιτήσεις αρχικού επιπέδου ή πρακτικής άσκησης."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Signing up..."
|
||||
msgid "since last view"
|
||||
msgstr "since last view"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
|
||||
@@ -7518,6 +7518,14 @@ msgstr "Signing up..."
|
||||
msgid "since last view"
|
||||
msgstr "since last view"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrándose..."
|
||||
msgid "since last view"
|
||||
msgstr "desde la última vista"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Una sola columna con un acento de borde izquierdo magenta; compacto y eficiente para solicitudes de nivel inicial o de prácticas."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "در حال عضویت..."
|
||||
msgid "since last view"
|
||||
msgstr "از آخرین مشاهده"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "تکستونه با حاشیهٔ چپ سرخابی؛ فشرده و کارآمد برای درخواستهای سطح ابتدایی یا کارآموزی."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Rekisteröidytään..."
|
||||
msgid "since last view"
|
||||
msgstr "edellisestä katselusta lähtien"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Yksipalstainen, magentavärisellä vasemmalla reunakorostuksella; tiivis ja tehokas aloittelevien tai harjoittelupaikkoihin hakevien ansioluetteloihin."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Inscription en cours..."
|
||||
msgid "since last view"
|
||||
msgstr "depuis la dernière vue"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Une seule colonne avec un accent de bordure gauche magenta ; compacte et efficace pour les candidatures de niveau débutant ou de stage."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "הרשמה..."
|
||||
msgid "since last view"
|
||||
msgstr "מאז הצפייה האחרונה"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "עמודה אחת עם פס בצבע מג׳נטה בצד שמאל; קומפקטי ויעיל למשרות התחלתיות או להתמחויות."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "रजिस्ट्रेशन..."
|
||||
msgid "since last view"
|
||||
msgstr "अंतिम दृश्य के बाद से"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "मैजेंटा बाएँ बॉर्डर एक्सेंट के साथ सिंगल‑कॉलम; एंट्री‑लेवल या इंटर्नशिप एप्लिकेशन के लिए कॉम्पैक्ट और प्रभावी।"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Regisztráció..."
|
||||
msgid "since last view"
|
||||
msgstr "az utolsó megtekintés óta"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Egyoszlopos elrendezés magenta bal szegéllyel; kompakt és hatékony pályakezdő vagy gyakornoki jelentkezésekhez."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Mendaftar..."
|
||||
msgid "since last view"
|
||||
msgstr "sejak tampilan terakhir"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Satu kolom dengan aksen garis tepi kiri magenta; ringkas dan efisien untuk lamaran level pemula atau magang."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrazione in corso..."
|
||||
msgid "since last view"
|
||||
msgstr "dall'ultima visualizzazione"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Una singola colonna con un bordo sinistro color magenta; compatto ed efficiente per candidature di livello iniziale o tirocini."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "登録中…"
|
||||
msgid "since last view"
|
||||
msgstr "最後に見たときから"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "マゼンタの左ボーダーアクセントが付いた 1 カラムのレイアウト。コンパクトで、初級職やインターンシップの応募に最適です。"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "កំពុងចុះឈ្មោះ..."
|
||||
msgid "since last view"
|
||||
msgstr "ចាប់តាំងពីការមើលចុងក្រោយ"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "ជួរឈរតែមួយ ជាមួយបន្ទាត់ពណ៌ម៉ាជែន្តាភាគីឆ្វេង រចនាប័ទ្មតូចស្រួច និងមានប្រសិទ្ធភាពសម្រាប់ការដាក់ពាក្យកម្រិតចូល ឬអាហារូបករណ៍ងារហាត់ការ។"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "ಸೈನ್ ಅಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."
|
||||
msgid "since last view"
|
||||
msgstr "ಕೊನೆಯ ನೋಟದಿಂದ"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "ಒಂದು ಕಾಲಮ್, ಮ್ಯಾಜೆಂಟಾ ಎಡ ಗಡಿಯ ಅಲಂಕಾರ; ಪ್ರವೇಶ-ಮಟ್ಟದ ಅಥವಾ ಇಂಟರ್ನ್ಶಿಪ್ ಅರ್ಜಿಗಳಿಗಾಗಿ ಸಂಕೀರ್ಣ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "가입 중..."
|
||||
msgid "since last view"
|
||||
msgstr "마지막으로 본 이후"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "마젠타색 왼쪽 테두리 포인트가 있는 단일 열 레이아웃으로, 신입·인턴 지원서에 적합한 컴팩트하고 효율적인 템플릿입니다."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registruojamasi..."
|
||||
msgid "since last view"
|
||||
msgstr "nuo paskutinio peržiūros"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Vienas stulpelis su purpuriniu kairiuoju kraštiniu akcentu; kompaktiškas ir efektyvus pradedančiojo ar praktikos kandidatūroms."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Notiek reģistrācija..."
|
||||
msgid "since last view"
|
||||
msgstr "kopš pēdējā skatījuma"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Vienkolonnu izkārtojums ar fuksijas kreiso apmali; kompakts un efektīvs pieteikumiem sākuma līmeņa vai prakses darbavietām."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "സൈൻ അപ് ചെയ്യുന്നു..."
|
||||
msgid "since last view"
|
||||
msgstr "അവസാന കാഴ്ച മുതൽ"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "ഒറ്റ കോളമാണ്, മജന്റ നിറത്തിലുള്ള ഇടത് ബോർഡർ ആക്സന്റോടെ; എൻട്രി ലെവൽ അല്ലെങ്കിൽ ഇന്റേൺഷിപ്പ് അപേക്ഷകൾക്ക് കംപാക്റ്റും കാര്യക്ഷമവുമാണ്."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "साइन अप होत आहे..."
|
||||
msgid "since last view"
|
||||
msgstr "शेवटच्या दृश्यापासून"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "एकाच स्तंभाचा साचा, डाव्या बाजूला मॅजेंटा रंगाचा किनार असलेला; एंट्री-लेव्हल किंवा इंटर्नशिप अर्जांसाठी कॉम्पॅक्ट आणि कार्यक्षम."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Mendaftar..."
|
||||
msgid "since last view"
|
||||
msgstr "sejak pandangan terakhir"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Satu kolum dengan aksen sempadan kiri magenta; padat dan cekap untuk permohonan peringkat permulaan atau latihan industri."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "साइन अप गर्दै..."
|
||||
msgid "since last view"
|
||||
msgstr "पछिल्लो दृश्य देखि"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "एक स्तम्भ, बाँया पट्टि म्याजेण्टा किनाराको एक्सेन्ट सहित; प्रवेश–स्तर वा इन्टर्नसिप आवेदनका लागि सङ्कुचित र कुशल।"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Bezig met registreren..."
|
||||
msgid "since last view"
|
||||
msgstr "sinds de laatste keer bekeken"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Enkelkoloms met een magenta accent langs de linkerrand; compact en efficiënt voor instap- of stageplaatsen."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrerer deg..."
|
||||
msgid "since last view"
|
||||
msgstr "siden forrige visning"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Enkolonners med magentafarget venstre kantlinje; kompakt og effektiv for jobbsøknader på begynnernivå eller praksisplasser."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "ସାଇନ୍ ଅପ୍ ହେଉଛି..."
|
||||
msgid "since last view"
|
||||
msgstr "ଶେଷ ଦର୍ଶନ ଠାରୁ"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "ଏକ ମ୍ୟାଜେଣ୍ଟା ବାମ ବର୍ଡର୍ ଆକ୍ସେଣ୍ଟ ସହ ଏକକ‑କଲମ୍; ପ୍ରବେଶ‑ସ୍ତର କିମ୍ବା ଇଣ୍ଟର୍ନଶିପ୍ ଆବେଦନ ପାଇଁ ସଂକ୍ଷିପ୍ତ ଏବଂ କାର୍ଯ୍ୟକ୍ଷମ।"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Rejestrowanie..."
|
||||
msgid "since last view"
|
||||
msgstr "od ostatniego widoku"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Jedna kolumna z fuksjowym akcentem na lewym obramowaniu; kompaktowy i wydajny układ dla aplikacji na stanowiska początkujące lub staże."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Cadastrando..."
|
||||
msgid "since last view"
|
||||
msgstr "desde a última visualização"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Uma coluna com um destaque magenta na borda esquerda; compacto e eficiente para candidaturas de nível iniciante ou estágio."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "A registar..."
|
||||
msgid "since last view"
|
||||
msgstr "desde a última visualização"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Uma coluna com uma faixa magenta na margem esquerda; compacta e eficiente para candidaturas de nível inicial ou estágios."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Înregistrare..."
|
||||
msgid "since last view"
|
||||
msgstr "de la ultima vizualizare"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "O singură coloană cu un accent de culoare magenta pe marginea stângă; compact și eficient pentru poziții entry-level sau stagii."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Регистрация..."
|
||||
msgid "since last view"
|
||||
msgstr "с момента последнего просмотра"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Одноколоночный макет с акцентной пурпурной левой границей; компактный и эффективный для начального уровня или стажировок."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrujem..."
|
||||
msgid "since last view"
|
||||
msgstr "od posledného pohľadu"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Jednostĺpcové rozloženie s purpurovým zvýraznením ľavého okraja; kompaktné a efektívne pre juniorské alebo stážistické pozície."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registriranje..."
|
||||
msgid "since last view"
|
||||
msgstr "od zadnjega pogleda"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Enojen stolpec z magenta obrobo na levi; kompaktno in učinkovito za začetne ali pripravniške prijave."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Po regjistroheni..."
|
||||
msgid "since last view"
|
||||
msgstr "që nga pamja e fundit"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Një kolonë e vetme me një vijë anësore të majtë në ngjyrë magenta; kompakte dhe efikase për aplikime fillestare ose praktika."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Регистрација..."
|
||||
msgid "since last view"
|
||||
msgstr "од последњег прегледа"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Једноколонац са магента траком на левој ивици; компактан и ефикасан за пријаве на почетни ниво или праксу."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Registrerar dig..."
|
||||
msgid "since last view"
|
||||
msgstr "sedan senaste visningen"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "En kolumn med magentafärgad vänsterkant; kompakt och effektiv för ansökningar på nybörjarnivå eller praktikplatser."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "பதிவு செய்து கொண்டிருக்கி
|
||||
msgid "since last view"
|
||||
msgstr "கடைசி பார்வையில் இருந்து"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "மஜெண்டா நிற இடது எல்லை அமைப்புடன் ஒற்றை நெடுவரிசை; ஆரம்ப நிலை அல்லது இன்டர்ன்ஷிப் விண்ணப்பங்களுக்கு சுருக்கமானதும் பயனுள்ளதுமான வடிவம்."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "సైన్ అప్ చేస్తున్నారు..."
|
||||
msgid "since last view"
|
||||
msgstr "చివరి వీక్షణ నుండి"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "ఒకే-కాలమ్, ఎడమ వైపు గులాబీ రంగు సరిహద్దుతో; ఎంట్రీ-లెవల్ లేదా ఇంటర్న్షిప్ అప్లికేషన్లకు కాంపాక్ట్ మరియు సమర్థవంతమైనది."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "กำลังลงทะเบียน..."
|
||||
msgid "since last view"
|
||||
msgstr "ตั้งแต่ดูครั้งล่าสุด"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "คอลัมน์เดียว มีแถบซ้ายขอบสีม่วงแดง กะทัดรัดและเหมาะสำหรับผู้สมัครระดับเริ่มต้นหรือฝึกงาน"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Kayıt olunuyor..."
|
||||
msgid "since last view"
|
||||
msgstr "son görüntülemeden bu yana"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Magenta sol kenar vurgulu tek sütun; yeni başlayanlar veya staj başvuruları için kompakt ve verimli."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Реєстрація..."
|
||||
msgid "since last view"
|
||||
msgstr "з моменту останнього перегляду"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Одна колонка з акцентним малиновим лівим бордюром; компактно та ефективно для молодших спеціалістів або стажувань."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Roʻyxatdan oʻtish jarayoni..."
|
||||
msgid "since last view"
|
||||
msgstr "oxirgi ko'rishdan beri"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Magenta rangli chap chegarasi aksenti bilan bir ustunli; ixcham va samarali, boshlang'ich daraja yoki amaliyot uchun arizalarga mos."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "Đang đăng ký..."
|
||||
msgid "since last view"
|
||||
msgstr "kể từ lần xem cuối cùng"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "Một cột với viền trái màu tím hồng nổi bật; gọn gàng và hiệu quả cho các đơn ứng tuyển vị trí mới ra trường hoặc thực tập."
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "正在注册…"
|
||||
msgid "since last view"
|
||||
msgstr "自上次查看以来"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "单栏布局,左侧为洋红色边框点缀;紧凑高效,适合入门级或实习申请。"
|
||||
|
||||
@@ -7523,6 +7523,14 @@ msgstr "正在註冊…"
|
||||
msgid "since last view"
|
||||
msgstr "自上次查看以來"
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr "單欄版面,左側具有洋紅色邊框點綴;版面緊湊有效率,適合入門或實習職缺。"
|
||||
|
||||
@@ -7518,6 +7518,14 @@ msgstr ""
|
||||
msgid "since last view"
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles."
|
||||
msgstr ""
|
||||
|
||||
#: src/dialogs/resume/template/data.ts
|
||||
msgid "Single-column with a magenta left border accent; compact and efficient for entry-level or internship applications."
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 141 KiB |
Binary file not shown.
Binary file not shown.
@@ -88,6 +88,21 @@ export const templates = {
|
||||
imageUrl: "/templates/jpg/pikachu.jpg",
|
||||
tags: ["Two-column", "Simple", "Creative", "Editorial", "Junior", "Accent colors"],
|
||||
},
|
||||
porygon: {
|
||||
name: "Porygon",
|
||||
description: msg`Single-column ruled form inspired by the Japanese rirekisho: a bordered header of field cells and every section as a table with a solid title bar; dense and fast to scan for engineering, operations, or applications in Japan.`,
|
||||
imageUrl: "/templates/jpg/porygon.jpg",
|
||||
tags: [
|
||||
"Single-column",
|
||||
"ATS friendly",
|
||||
"Ruled grid",
|
||||
"Dense",
|
||||
"Structured",
|
||||
"Engineering",
|
||||
"Operations",
|
||||
"Asian style",
|
||||
],
|
||||
},
|
||||
rhyhorn: {
|
||||
name: "Rhyhorn",
|
||||
description: msg`Single-column with a minimal top header and lots of whitespace; clean and modern for designers or content creators.`,
|
||||
@@ -100,4 +115,10 @@ export const templates = {
|
||||
imageUrl: "/templates/jpg/scizor.jpg",
|
||||
tags: ["Single-column", "ATS friendly", "Uppercase headings", "Executive", "Consulting", "Startup"],
|
||||
},
|
||||
smeargle: {
|
||||
name: "Smeargle",
|
||||
description: msg`Single-column set like a magazine feature: a large display name under an uppercase kicker, the summary as an italic standfirst and italic section headings; refined for writers, designers, and communications roles.`,
|
||||
imageUrl: "/templates/jpg/smeargle.jpg",
|
||||
tags: ["Single-column", "ATS friendly", "Editorial", "Magazine", "Serif", "Writer", "Designer", "Communications"],
|
||||
},
|
||||
} as const satisfies Record<Template, TemplateMetadata>;
|
||||
|
||||
@@ -407,8 +407,9 @@ resume[template="azurill"] template-part[name="timeline-line"] {
|
||||
| Pikachu | `template-part[name="header-divider"]` |
|
||||
| Rhyhorn | `template-part[name="contact-item-content"]`, `contact-item[part~="contact-item-last"]` |
|
||||
| Scizor | `template-part[name="header-name-rule"]` |
|
||||
| Smeargle | `template-part[name="featured-summary"]` |
|
||||
|
||||
Kakuna, Lapras and Onyx have no template-specific parts.
|
||||
Kakuna, Lapras, Onyx and Porygon have no template-specific parts.
|
||||
|
||||
Every template also has `template-part[name="item-header-row"]`: the row with the title and date in Awards,
|
||||
Certifications, Projects and Publications entries. It doesn't need a template guard.
|
||||
|
||||
@@ -12,7 +12,7 @@ Adobe Express has a resume maker inside a general creative editor. Reactive Resu
|
||||
| Consideration | Reactive Resume | Adobe Express |
|
||||
| ---------------- | ------------------------------------------------------------------------- | ------------------------------------------------------- |
|
||||
| Primary workflow | Resume-specific fields and templates | General visual editing with resume templates |
|
||||
| Editing scope | 15 resume templates, typography, accent colour, page layout, and sections | Document, image, layout, and graphic editing |
|
||||
| Editing scope | 17 resume templates, typography, accent colour, page layout, and sections | Document, image, layout, and graphic editing |
|
||||
| Exports | PDF, Word (DOCX), Markdown, and Reactive Resume JSON | Resume creation and export options in Adobe Express |
|
||||
| Content reuse | Structured data can be reused across resume versions | Reuse designs and assets in the Adobe Express workflow |
|
||||
| Deployment | Hosted use or self-hosting under an MIT license | Adobe-hosted service |
|
||||
|
||||
@@ -12,7 +12,7 @@ Both tools make resumes, but they start from different models. Canva is a genera
|
||||
| Consideration | Reactive Resume | Canva |
|
||||
| ---------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
|
||||
| Primary workflow | Structured resume sections with a live preview | Freeform visual editing across many design types |
|
||||
| Design controls | 15 resume templates, font pairings or about 500 fonts, accent colour, density, margins, and custom CSS | Flexible composition, elements, and a broad design library |
|
||||
| Design controls | 17 resume templates, font pairings or about 500 fonts, accent colour, density, margins, and custom CSS | Flexible composition, elements, and a broad design library |
|
||||
| Exports | PDF, Word (DOCX), Markdown, and Reactive Resume JSON | See Canva's export options and template terms |
|
||||
| Data portability | JSON export can back up or restore a resume | Depends on the design and export format you choose |
|
||||
| Deployment | Hosted use or self-hosting under the MIT license | Canva-hosted service |
|
||||
@@ -28,7 +28,7 @@ Canva is also the convenient option when you are preparing related design materi
|
||||
|
||||
## Where Reactive Resume is a better fit
|
||||
|
||||
Choose Reactive Resume when the content should stay in recognizable resume fields and you expect to reuse it across versions. You can change between 15 templates without re-entering the underlying sections, adjust layout settings, and export in several document and data formats. Cover letters are their own documents that share the resume's design, and Check mode flags lines that applicant tracking systems may read poorly.
|
||||
Choose Reactive Resume when the content should stay in recognizable resume fields and you expect to reuse it across versions. You can change between 17 templates without re-entering the underlying sections, adjust layout settings, and export in several document and data formats. Cover letters are their own documents that share the resume's design, and Check mode flags lines that applicant tracking systems may read poorly.
|
||||
|
||||
It also fits when you care about infrastructure. Reactive Resume is [MIT-licensed](/legal/license), its source is public, and you can deploy it yourself. The [self-hosting guide](/self-hosting/docker) covers the Docker path, and hosted use stays available if you would rather not run the service.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Freesumes is built for making one resume in a browser session, without an accoun
|
||||
| Consideration | Reactive Resume | Freesumes |
|
||||
| ---------------------- | ------------------------------------------------------- | --------------------------------------------------------- |
|
||||
| Account | Account-backed resumes, cover letters, and applications | No account or credit card for the builder |
|
||||
| Builder templates | 15 templates; switch at any time without retyping | Six current builder templates |
|
||||
| Builder templates | 17 templates; switch at any time without retyping | Six current builder templates |
|
||||
| PDF | PDF export | PDF download |
|
||||
| Other template formats | Word (DOCX), Markdown, and JSON exports | Separate Word and Google Docs templates |
|
||||
| Data handling | Resumes persist in the account and server storage | Builder data is wiped when the tab is refreshed or closed |
|
||||
|
||||
@@ -9,7 +9,7 @@ Jobscan makes sense when your workflow revolves around its hosted resume scanner
|
||||
|
||||
| Consideration | Reactive Resume | Jobscan |
|
||||
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
|
||||
| Resume creation | Structured editor with 15 templates and PDF, Word (DOCX), Markdown, and JSON exports | Free builder with nine current templates and PDF download |
|
||||
| Resume creation | Structured editor with 17 templates and PDF, Word (DOCX), Markdown, and JSON exports | Free builder with nine current templates and PDF download |
|
||||
| Import | PDF, Word (with your own AI provider), LinkedIn data export, JSON Resume, and Reactive Resume files | Existing-resume and LinkedIn import |
|
||||
| Analysis | Free, in two places: Check mode in the editor (readability score, issues pinned to lines, posting terms you have and lack) and a public ATS checker that reads a PDF in your browser | Separate resume scanner producing a match rate against a job description |
|
||||
| Automation | Authenticated API and MCP workflows, including job applications | Separate scanner workflow |
|
||||
|
||||
@@ -16,7 +16,7 @@ Novorésumé is the stronger choice when guided design, writing advice, a conten
|
||||
|
||||
Novorésumé's current Basic plan permits exactly one document, capped at one page. Its Premium plan lists 72 documents and documents up to 10 pages. The product also documents templates, a content library, real-time advice, and an integrated assistant.
|
||||
|
||||
Reactive Resume keeps your resumes and cover letters on its [Documents page](/guides/managing-documents), offers 15 templates, and supports [PDF, DOCX, Markdown, and JSON exports](/guides/exporting-your-resume). Its source is public under the [MIT license](/legal/license), and it runs with Docker.
|
||||
Reactive Resume keeps your resumes and cover letters on its [Documents page](/guides/managing-documents), offers 17 templates, and supports [PDF, DOCX, Markdown, and JSON exports](/guides/exporting-your-resume). Its source is public under the [MIT license](/legal/license), and it runs with Docker.
|
||||
|
||||
## Where Novorésumé is a better fit
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Reactive Resume and Resume.com both let you create and download a PDF resume wit
|
||||
| ------------------- | ------------------------------------------------------------------- | --------------------------------------------------- |
|
||||
| Free final download | PDF, Word (DOCX), Markdown, and JSON | PDF and plain text |
|
||||
| Accounts | Account required for the hosted builder and saved resume management | An email is requested to save work in the dashboard |
|
||||
| Workflow | Structured sections, 15 templates, live preview, and Check mode | Hosted builder with templates and saved resumes |
|
||||
| Workflow | Structured sections, 17 templates, live preview, and Check mode | Hosted builder with templates and saved resumes |
|
||||
|
||||
The common ground here is the download boundary. Resume.com says its builder has no paid membership tier and that PDF and plain-text downloads are free. Reactive Resume is not a cheaper way to get a Resume.com PDF: both produce one without a premium upgrade.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Resume.io is a commercial, guided builder with sample content and a template-foc
|
||||
| Consideration | Reactive Resume | Resume.io |
|
||||
| ------------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
||||
| Free final download | PDF, Word (DOCX), Markdown, and JSON | PDF with the Vancouver template or TXT |
|
||||
| Other designed templates | All 15 templates included | Premium trial or subscription workflow |
|
||||
| Other designed templates | All 17 templates included | Premium trial or subscription workflow |
|
||||
| Content support | Direct editing, Check mode, a sample resume, and an optional AI assistant using your own provider | Sample resumes, pre-generated sentences, and tips |
|
||||
| Deployment | Hosted use or self-hosting | Hosted service |
|
||||
| Pricing availability | No premium resume tier | Plans can vary by location |
|
||||
@@ -27,7 +27,7 @@ The Vancouver template makes it workable for someone who likes that design and n
|
||||
|
||||
## Where Reactive Resume is a better fit
|
||||
|
||||
Reactive Resume fits when you want to pick from all 15 templates and export a designed document without a template tier in the way. Cover letters are separate documents with the same design and the same free downloads. Its [export guide](/guides/exporting-your-resume) covers PDF, DOCX, Markdown, and JSON. The data export keeps your structured content and settings alongside the document download.
|
||||
Reactive Resume fits when you want to pick from all 17 templates and export a designed document without a template tier in the way. Cover letters are separate documents with the same design and the same free downloads. Its [export guide](/guides/exporting-your-resume) covers PDF, DOCX, Markdown, and JSON. The data export keeps your structured content and settings alongside the document download.
|
||||
|
||||
You also get source access and self-hosting. Reactive Resume is [MIT-licensed](/legal/license), and its [Docker guide](/self-hosting/docker) documents the self-hosted route. Its optional AI integration lets you configure a provider if you want help, while ordinary editing does not depend on it.
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Reactive Resume is a free and open-source resume builder. You write your resume
|
||||
LinkedIn export.
|
||||
</Card>
|
||||
<Card title="Design the page" icon="palette">
|
||||
Pick from 15 templates, then adjust fonts, colors, page size and layout. The page updates as you type.
|
||||
Pick from 17 templates, then adjust fonts, colors, page size and layout. The page updates as you type.
|
||||
</Card>
|
||||
<Card title="Check before you send" icon="list-check">
|
||||
**Check** mode points out issues on the lines they belong to and compares your resume with a job posting.
|
||||
|
||||
@@ -88,7 +88,7 @@ You don't need to save. Under the document name, the status changes to **Saving
|
||||
Select **Design** at the top of the editor, or press <kbd>2</kbd>.
|
||||
</Step>
|
||||
<Step title="Pick a template">
|
||||
**Template**, at the top of Design, shows all 15 templates filled with your own content. Select one, such as
|
||||
**Template**, at the top of Design, shows all 17 templates filled with your own content. Select one, such as
|
||||
**Bronzor**, and the page switches to it. Your content stays the same; only the look changes.
|
||||
</Step>
|
||||
<Step title="Go back to writing">
|
||||
|
||||
@@ -33,7 +33,7 @@ The chips above the thumbnails narrow the list:
|
||||
|
||||
| Filter | Shows |
|
||||
| --------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| **All** | All 15 templates. |
|
||||
| **All** | All 17 templates. |
|
||||
| **One column** | Templates that read top to bottom in a single column. |
|
||||
| **Two columns** | Templates with a separate sidebar column. |
|
||||
| **ATS-safe** | Templates with one reading order and plain text headings, which applicant tracking systems read cleanly. |
|
||||
@@ -68,7 +68,7 @@ The counter on the right (for example "7 of 15 shown") tells you how many templa
|
||||
sheet over the lower half of the page and the templates scroll sideways in a strip.
|
||||
</Tip>
|
||||
|
||||
## The 15 templates
|
||||
## The 17 templates
|
||||
|
||||
All templates support the same sections and features. They differ only in how they arrange your information. The images below use the same resume in each template.
|
||||
|
||||
@@ -87,8 +87,10 @@ All templates support the same sections and features. They differ only in how th
|
||||
| Meowth | One | Yes | — |
|
||||
| Onyx | One | Yes | — |
|
||||
| Pikachu | Two | No | Left |
|
||||
| Porygon | One | Yes | — |
|
||||
| Rhyhorn | One | Yes | — |
|
||||
| Scizor | One | Yes | — |
|
||||
| Smeargle | One | Yes | — |
|
||||
|
||||
In a one-column template, sections you placed in the sidebar print after the main sections instead of beside them. Bronzor prints them as labelled rows. On two-column templates you can move the sidebar to the other side; see [Arranging the layout](/guides/arranging-the-layout).
|
||||
|
||||
@@ -184,6 +186,13 @@ In a one-column template, sections you placed in the sidebar print after the mai
|
||||
style={{ aspectRatio: "210/297" }}
|
||||
/>
|
||||
</Frame>
|
||||
<Frame caption="Porygon">
|
||||
<img
|
||||
src="/images/templates/porygon.webp"
|
||||
alt="First page of a resume in the Porygon template: a bordered header of field cells and each section as a ruled table under a solid title bar"
|
||||
style={{ aspectRatio: "210/297" }}
|
||||
/>
|
||||
</Frame>
|
||||
<Frame caption="Rhyhorn">
|
||||
<img
|
||||
src="/images/templates/rhyhorn.webp"
|
||||
@@ -198,6 +207,13 @@ In a one-column template, sections you placed in the sidebar print after the mai
|
||||
style={{ aspectRatio: "210/297" }}
|
||||
/>
|
||||
</Frame>
|
||||
<Frame caption="Smeargle">
|
||||
<img
|
||||
src="/images/templates/smeargle.webp"
|
||||
alt="First page of a resume in the Smeargle template: a large serif name under a small uppercase kicker, an italic introduction and italic section headings"
|
||||
style={{ aspectRatio: "210/297" }}
|
||||
/>
|
||||
</Frame>
|
||||
</div>
|
||||
|
||||
## Tips for choosing
|
||||
|
||||
@@ -66,7 +66,7 @@ An empty `title` means the template's default heading in the resume's language.
|
||||
- **Rich text is HTML.** Fields such as `description` and `summary.content` hold HTML strings.
|
||||
- **IDs.** Every item and custom section needs a unique `id`. Use a UUID.
|
||||
- **Cover letters.** The schema still accepts custom sections of type `cover-letter` so older exports stay valid. When you save or import such a resume, Reactive Resume moves each letter into a cover letter of its own and removes the section. See [Writing a cover letter](/guides/writing-a-cover-letter).
|
||||
- **Templates.** `metadata.template` is one of the 15 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `rhyhorn` or `scizor`.
|
||||
- **Templates.** `metadata.template` is one of the 17 templates: `azurill`, `bronzor`, `chikorita`, `ditgar`, `ditto`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `meowth`, `onyx`, `pikachu`, `porygon`, `rhyhorn`, `scizor` or `smeargle`.
|
||||
- **No version field.** Resume objects have no top-level `version` or `$schema` property. Don't add one; point your tools at the schema URL instead.
|
||||
|
||||
## Validate resume data
|
||||
@@ -4370,8 +4370,10 @@ The complete schema, generated from the source code of this version.
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
]
|
||||
},
|
||||
"layout": {
|
||||
|
||||
@@ -51,7 +51,7 @@ of the editor, or press <kbd>1</kbd>, <kbd>2</kbd> or <kbd>3</kbd>.
|
||||
sections in print order. Each section and entry has a **⋯** menu for options such as hiding, duplicating or moving
|
||||
it. You can also select a block on the page to jump to it in the panel.
|
||||
- **Design** holds the look: **Template**, **Type**, **Color**, **Page** and **Advanced** (custom fonts, the date
|
||||
format, custom CSS and more). The template gallery shows all 15 templates filled with your own content.
|
||||
format, custom CSS and more). The template gallery shows all 17 templates filled with your own content.
|
||||
- **Check** reviews your resume. It lists issues pinned to the lines they belong to and gives a readability score, a
|
||||
**Job match** against a posting, and an AI **Writing** review. It replaces the ATS section of the old builder; the
|
||||
public [ATS checker](/guides/using-the-ats-checker) page is still available.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 136 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 158 KiB |
+105
-35
@@ -4105,8 +4105,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -8552,8 +8554,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -29608,8 +29612,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -30222,8 +30228,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -31595,8 +31603,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -32138,8 +32148,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
@@ -32380,8 +32392,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -33080,8 +33094,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -33617,8 +33633,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "Sets the letter's own template, which unlinks its design."
|
||||
@@ -34133,8 +34151,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -34756,8 +34776,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "Sets the letter's own template, which unlinks its design."
|
||||
@@ -35272,8 +35294,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -35997,8 +36021,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -36714,8 +36740,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -37414,8 +37442,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -38054,8 +38084,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -38647,8 +38679,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -39679,8 +39713,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -40549,8 +40585,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -47201,8 +47239,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -51617,8 +51657,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -56228,8 +56270,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -60898,8 +60942,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -66329,8 +66375,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -70900,8 +70948,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -78050,8 +78100,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -82789,8 +82841,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -83772,8 +83826,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -84463,8 +84519,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -85056,8 +85114,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -85781,8 +85841,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -86651,8 +86713,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -95095,8 +95159,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -99542,8 +99608,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
],
|
||||
"type": "string",
|
||||
"description": "The template to use for the resume. Determines the overall design and appearance of the resume."
|
||||
@@ -105222,8 +105290,10 @@
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor"
|
||||
"scizor",
|
||||
"smeargle"
|
||||
]
|
||||
},
|
||||
"layout": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Free resume builder"
|
||||
description: "Reactive Resume is a free resume builder with no premium tier: unlimited resumes and cover letters, 15 templates, and PDF, Word, Markdown and JSON downloads."
|
||||
description: "Reactive Resume is a free resume builder with no premium tier: unlimited resumes and cover letters, 17 templates, and PDF, Word, Markdown and JSON downloads."
|
||||
---
|
||||
|
||||
Reactive Resume is a free resume builder. On [rxresu.me](https://rxresu.me) you get every feature with no premium tier, no watermark and no paywall on downloads. The project is open source and funded by donations, which is why nothing is held back.
|
||||
@@ -8,7 +8,7 @@ Reactive Resume is a free resume builder. On [rxresu.me](https://rxresu.me) you
|
||||
## What you get for free
|
||||
|
||||
- **Unlimited documents.** Keep as many resumes and cover letters as you need, and copy one for each job.
|
||||
- **15 templates.** Switch at any time without retyping; your content stays the same and only the design changes.
|
||||
- **17 templates.** Switch at any time without retyping; your content stays the same and only the design changes.
|
||||
- **Design controls.** Font pairings (or any of about 500 fonts), text size, density, accent colour, margins, A4, Letter or Free-form pages, and multi-page layouts.
|
||||
- **Every download format.** PDF, Word, Markdown and JSON, as often as you like.
|
||||
- **Check mode.** A readability score, issues pinned to the exact lines on your page, and keyword matching against a job posting.
|
||||
@@ -40,7 +40,7 @@ If you only want to check an existing PDF, you do not need an account at all: th
|
||||
Start blank, from a sample or from an import.
|
||||
</Card>
|
||||
<Card title="Choose a template" icon="table-columns" href="/guides/choosing-a-template">
|
||||
Compare the 15 templates and switch in one click.
|
||||
Compare the 17 templates and switch in one click.
|
||||
</Card>
|
||||
<Card title="Export your resume" icon="file-arrow-down" href="/guides/exporting-your-resume">
|
||||
Download PDF, Word, Markdown or JSON.
|
||||
|
||||
@@ -16,7 +16,7 @@ Reactive Resume is an open-source resume builder. Its source code is public on [
|
||||
|
||||
Reactive Resume v6 is more than a resume editor. It covers the whole job search:
|
||||
|
||||
- Resumes and cover letters as separate documents, with 15 templates and shared design.
|
||||
- Resumes and cover letters as separate documents, with 17 templates and shared design.
|
||||
- Check mode for readability, issues and job-posting keywords, plus a public ATS checker.
|
||||
- Public links with passwords and view statistics.
|
||||
- An application tracker with board, list, calendar and insights views.
|
||||
|
||||
@@ -15,8 +15,10 @@ import { leafishSemanticManifest } from "../templates/leafish/semantic";
|
||||
import { meowthSemanticManifest } from "../templates/meowth/semantic";
|
||||
import { onyxSemanticManifest } from "../templates/onyx/semantic";
|
||||
import { pikachuSemanticManifest } from "../templates/pikachu/semantic";
|
||||
import { porygonSemanticManifest } from "../templates/porygon/semantic";
|
||||
import { rhyhornSemanticManifest } from "../templates/rhyhorn/semantic";
|
||||
import { scizorSemanticManifest } from "../templates/scizor/semantic";
|
||||
import { smeargleSemanticManifest } from "../templates/smeargle/semantic";
|
||||
import { SHARED_BINDING_REGISTRY } from "./binding-inventory";
|
||||
|
||||
export type TemplateSemanticPlacement = "main" | "sidebar";
|
||||
@@ -145,8 +147,10 @@ const TEMPLATE_SEMANTIC_MANIFESTS = {
|
||||
meowth: meowthSemanticManifest,
|
||||
onyx: onyxSemanticManifest,
|
||||
pikachu: pikachuSemanticManifest,
|
||||
porygon: porygonSemanticManifest,
|
||||
rhyhorn: rhyhornSemanticManifest,
|
||||
scizor: scizorSemanticManifest,
|
||||
smeargle: smeargleSemanticManifest,
|
||||
} as const satisfies Readonly<Record<Template, TemplateSemanticManifest>>;
|
||||
|
||||
export function getTemplateSemanticManifest(template: Template): TemplateSemanticManifest {
|
||||
|
||||
@@ -13,8 +13,10 @@ import { LeafishPage } from "./leafish/LeafishPage";
|
||||
import { MeowthPage } from "./meowth/MeowthPage";
|
||||
import { OnyxPage } from "./onyx/OnyxPage";
|
||||
import { PikachuPage } from "./pikachu/PikachuPage";
|
||||
import { PorygonPage } from "./porygon/PorygonPage";
|
||||
import { RhyhornPage } from "./rhyhorn/RhyhornPage";
|
||||
import { ScizorPage } from "./scizor/ScizorPage";
|
||||
import { SmearglePage } from "./smeargle/SmearglePage";
|
||||
|
||||
const templatePages: Partial<Record<Template, TemplatePage>> = {
|
||||
azurill: AzurillPage,
|
||||
@@ -30,8 +32,10 @@ const templatePages: Partial<Record<Template, TemplatePage>> = {
|
||||
meowth: MeowthPage,
|
||||
onyx: OnyxPage,
|
||||
pikachu: PikachuPage,
|
||||
porygon: PorygonPage,
|
||||
rhyhorn: RhyhornPage,
|
||||
scizor: ScizorPage,
|
||||
smeargle: SmearglePage,
|
||||
};
|
||||
|
||||
const defaultTemplatePage = AzurillPage;
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
import type { TemplatePageProps } from "../../document";
|
||||
import type { Style } from "../../forme/style-types";
|
||||
import type { TemplateColorRoles, TemplateStyleContext, TemplateStyleSlots } from "../shared/types";
|
||||
import { useMemo } from "react";
|
||||
import { Page, StyleSheet, View } from "#react-pdf-renderer";
|
||||
import { useRender } from "../../context";
|
||||
import { useRenderedSectionIds, useResolvedNode } from "../../semantic/context";
|
||||
import { semanticNodeKeys } from "../../semantic/node-keys";
|
||||
import { getPrimaryTint } from "../shared/color-helpers";
|
||||
import {
|
||||
CustomFieldContactItem,
|
||||
EmailContactItem,
|
||||
LocationContactItem,
|
||||
PhoneContactItem,
|
||||
WebsiteContactItem,
|
||||
} from "../shared/contact-item";
|
||||
import { TemplateProvider } from "../shared/context";
|
||||
import { filterSections } from "../shared/filtering";
|
||||
import { getTemplateMetrics } from "../shared/metrics";
|
||||
import { hasTemplatePicture } from "../shared/picture";
|
||||
import {
|
||||
Heading,
|
||||
SemanticContactListView,
|
||||
SemanticHeaderPicture,
|
||||
SemanticHeaderView,
|
||||
SemanticRegionView,
|
||||
Text,
|
||||
} from "../shared/primitives";
|
||||
import { Section } from "../shared/sections";
|
||||
import { composeStyles, headerNameLineHeight } from "../shared/styles";
|
||||
import { createIconSlot, useTemplateBase } from "../shared/template-base";
|
||||
|
||||
type PorygonStyles = Omit<TemplateStyleSlots, "page"> & {
|
||||
page: Style;
|
||||
header: Style;
|
||||
headerFields: Style;
|
||||
headerIdentity: Style;
|
||||
headerName: Style;
|
||||
headerHeadline: Style;
|
||||
contactList: Style;
|
||||
contactItem: Style;
|
||||
pictureCell: Style;
|
||||
picture: Style;
|
||||
sections: Style;
|
||||
};
|
||||
|
||||
type PorygonTemplate = {
|
||||
colors: TemplateColorRoles;
|
||||
styles: PorygonStyles;
|
||||
};
|
||||
|
||||
type PorygonHeaderProps = {
|
||||
styles: PorygonStyles;
|
||||
};
|
||||
|
||||
/**
|
||||
* Porygon lays the resume out as a ruled form, after the Japanese rirekisho: the header is a bordered
|
||||
* block of field cells with the photo in a cell of its own, and every section is a table with a solid
|
||||
* title bar over one ruled row per entry. The rules, not whitespace, carry the structure.
|
||||
*/
|
||||
export const PorygonPage = ({ page, pageSize, pageMinHeightStyle, showHeader, pageNumber }: TemplatePageProps) => {
|
||||
const data = useRender();
|
||||
const pageNodeKey = semanticNodeKeys.page(pageNumber);
|
||||
const { style: semanticPageStyle, size: semanticPageSize, ...semanticPageProps } = useResolvedNode(pageNodeKey);
|
||||
const { metadata } = data;
|
||||
const { colors, styles } = usePorygonTemplate();
|
||||
const metrics = getTemplateMetrics(metadata.page);
|
||||
const mainSections = useRenderedSectionIds(pageNodeKey, filterSections(page.main, data));
|
||||
const sidebarSections = useRenderedSectionIds(pageNodeKey, page.fullWidth ? [] : filterSections(page.sidebar, data));
|
||||
const sections = [...mainSections, ...sidebarSections];
|
||||
|
||||
return (
|
||||
<Page
|
||||
{...semanticPageProps}
|
||||
size={semanticPageSize ?? pageSize}
|
||||
style={composeStyles(styles.page, pageMinHeightStyle, semanticPageStyle)}
|
||||
>
|
||||
<TemplateProvider pageNodeKey={pageNodeKey} styles={styles} colors={colors}>
|
||||
{showHeader && <Header styles={styles} />}
|
||||
|
||||
<SemanticRegionView region="main" style={composeStyles(styles.sections, { rowGap: metrics.sectionGap })}>
|
||||
{sections.map((section) => (
|
||||
<Section key={section} section={section} placement="main" />
|
||||
))}
|
||||
</SemanticRegionView>
|
||||
</TemplateProvider>
|
||||
</Page>
|
||||
);
|
||||
};
|
||||
|
||||
const Header = ({ styles }: PorygonHeaderProps) => {
|
||||
const { basics, picture } = useRender();
|
||||
const hasPicture = hasTemplatePicture(picture);
|
||||
|
||||
return (
|
||||
<SemanticHeaderView style={styles.header}>
|
||||
<View style={styles.headerFields}>
|
||||
<View style={styles.headerIdentity}>
|
||||
<Heading style={styles.headerName}>{basics.name}</Heading>
|
||||
{basics.headline && <Text style={styles.headerHeadline}>{basics.headline}</Text>}
|
||||
</View>
|
||||
|
||||
<SemanticContactListView style={styles.contactList}>
|
||||
<EmailContactItem email={basics.email} style={styles.contactItem} />
|
||||
<PhoneContactItem phone={basics.phone} style={styles.contactItem} />
|
||||
<LocationContactItem location={basics.location} style={styles.contactItem} />
|
||||
<WebsiteContactItem website={basics.website} style={styles.contactItem} />
|
||||
{basics.customFields.map((field) => (
|
||||
<CustomFieldContactItem key={field.id} field={field} style={styles.contactItem} />
|
||||
))}
|
||||
</SemanticContactListView>
|
||||
</View>
|
||||
|
||||
{hasPicture && (
|
||||
<View style={styles.pictureCell}>
|
||||
<SemanticHeaderPicture src={picture.url} style={styles.picture} />
|
||||
</View>
|
||||
)}
|
||||
</SemanticHeaderView>
|
||||
);
|
||||
};
|
||||
|
||||
const usePorygonTemplate = (): PorygonTemplate => {
|
||||
const { metadata, r, foreground, background, primary, metrics, base } = useTemplateBase();
|
||||
|
||||
return useMemo(() => {
|
||||
const colors: TemplateColorRoles = { foreground, background, primary };
|
||||
const { heading } = metadata.typography;
|
||||
// The header's frame and the title bars are solid accent; every rule between cells is a light tint of it.
|
||||
const rule = getPrimaryTint(metadata.design.colors.primary, 0.3);
|
||||
const ruleWidth = 0.75;
|
||||
const cellX = metrics.gapX(0.75);
|
||||
const cellY = metrics.gapY(0.75);
|
||||
// Each contact cell draws the rule on its own start side; pulling the grid back by one rule hides the first
|
||||
// column's rule under the header's frame.
|
||||
const ruleStart = r.rtl
|
||||
? { borderRightWidth: ruleWidth, borderRightColor: rule }
|
||||
: { borderLeftWidth: ruleWidth, borderLeftColor: rule };
|
||||
|
||||
const baseStyles = StyleSheet.create({
|
||||
...base,
|
||||
page: {
|
||||
...base.page,
|
||||
paddingHorizontal: metrics.page.paddingHorizontal,
|
||||
paddingVertical: metrics.page.paddingVertical,
|
||||
rowGap: metrics.sectionGap,
|
||||
},
|
||||
heading: { ...base.heading, fontWeight: heading.fontWeights.at(-1) ?? "700" },
|
||||
section: {
|
||||
flexDirection: "column",
|
||||
},
|
||||
sectionHeading: {
|
||||
backgroundColor: primary,
|
||||
color: background,
|
||||
fontSize: heading.fontSize * 0.8,
|
||||
// Tracking breaks the joins of cursive right-to-left scripts such as Arabic.
|
||||
letterSpacing: r.rtl ? 0 : heading.fontSize * 0.1,
|
||||
textTransform: "uppercase",
|
||||
// Longhands: the heading's icon row strips these from its title text, but not the shorthands.
|
||||
paddingTop: metrics.gapY(0.4),
|
||||
paddingBottom: metrics.gapY(0.4),
|
||||
paddingLeft: cellX,
|
||||
paddingRight: cellX,
|
||||
},
|
||||
// Every cell is closed on all four sides, so an entry carried onto the next page still reads as a cell.
|
||||
// Forme strokes a border centred on the box's edge: touching cells share one rule, and half a rule of
|
||||
// padding keeps the first cell's top rule clear of the title bar.
|
||||
sectionItems: {
|
||||
rowGap: 0,
|
||||
paddingTop: ruleWidth / 2,
|
||||
},
|
||||
item: {
|
||||
rowGap: metrics.gapY(0.125),
|
||||
borderWidth: ruleWidth,
|
||||
borderColor: rule,
|
||||
paddingVertical: cellY,
|
||||
paddingHorizontal: cellX,
|
||||
},
|
||||
levelContainer: {
|
||||
width: "100%",
|
||||
},
|
||||
header: {
|
||||
flexDirection: r.row,
|
||||
borderWidth: 1,
|
||||
borderColor: primary,
|
||||
},
|
||||
headerFields: {
|
||||
flex: 1,
|
||||
},
|
||||
headerIdentity: {
|
||||
...r.headerIdentity,
|
||||
rowGap: metrics.gapY(0.35),
|
||||
paddingVertical: cellY * 1.25,
|
||||
paddingHorizontal: cellX,
|
||||
},
|
||||
headerName: {
|
||||
fontSize: heading.fontSize * 2,
|
||||
lineHeight: headerNameLineHeight,
|
||||
},
|
||||
headerHeadline: {
|
||||
color: primary,
|
||||
},
|
||||
contactList: {
|
||||
flexDirection: r.row,
|
||||
flexWrap: "wrap",
|
||||
...(r.rtl ? { marginRight: -ruleWidth } : { marginLeft: -ruleWidth }),
|
||||
},
|
||||
contactItem: {
|
||||
flexDirection: r.row,
|
||||
alignItems: "center",
|
||||
columnGap: metrics.gapX(1 / 3),
|
||||
flexBasis: "50%",
|
||||
flexGrow: 1,
|
||||
borderTopWidth: ruleWidth,
|
||||
borderTopColor: rule,
|
||||
...ruleStart,
|
||||
paddingVertical: cellY * 0.6,
|
||||
paddingHorizontal: cellX,
|
||||
},
|
||||
pictureCell: {
|
||||
justifyContent: "center",
|
||||
...(r.rtl
|
||||
? { borderRightWidth: ruleWidth, borderRightColor: rule }
|
||||
: { borderLeftWidth: ruleWidth, borderLeftColor: rule }),
|
||||
padding: cellX,
|
||||
},
|
||||
sections: {
|
||||
flexDirection: "column",
|
||||
},
|
||||
});
|
||||
|
||||
const accentFor = ({ colors }: TemplateStyleContext) => colors.primary;
|
||||
|
||||
return {
|
||||
colors,
|
||||
styles: {
|
||||
...baseStyles,
|
||||
levelItem: (context) => ({ borderColor: accentFor(context) }),
|
||||
levelItemActive: (context) => ({ backgroundColor: accentFor(context) }),
|
||||
icon: createIconSlot({ metadata, accentFor }),
|
||||
sectionHeadingIcon: { color: background },
|
||||
} satisfies PorygonStyles,
|
||||
};
|
||||
}, [metadata, r, primary, metrics, base, foreground, background]);
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
import type { TemplateSemanticManifest } from "../../semantic/template-manifest";
|
||||
import { itemHeaderRowPart } from "../../semantic/shared-parts";
|
||||
|
||||
export const porygonSemanticManifest = {
|
||||
template: "porygon",
|
||||
regions: [
|
||||
{ name: "header", placement: "main", origins: [] },
|
||||
{ name: "main", placement: "main", origins: ["main", "sidebar"] },
|
||||
],
|
||||
header: { region: "header", placement: "main" },
|
||||
specialSummary: null,
|
||||
parts: [itemHeaderRowPart],
|
||||
} as const satisfies TemplateSemanticManifest;
|
||||
@@ -15,7 +15,7 @@ type BaseTemplateStylesInput = {
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the ~20 byte-identical style slots shared by all 15 templates as plain objects.
|
||||
* Returns the ~20 byte-identical style slots shared by every template as plain objects.
|
||||
* Each template spreads the result into its own StyleSheet.create() call and overrides only
|
||||
* the slots that differ (heading fontWeight, bold fallback, inline gap, picture extras, etc.).
|
||||
*
|
||||
@@ -129,7 +129,7 @@ export function createBaseTemplateStyles({
|
||||
alignEnd: { ...r.alignEnd } satisfies Style,
|
||||
|
||||
/**
|
||||
* Standard picture style shared by 14/15 templates.
|
||||
* Standard picture style shared by every template but ditto.
|
||||
* ditto overrides: spread this and add `position: "absolute"`, `top`, `left`, `marginLeft`.
|
||||
*/
|
||||
picture: {
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
import type { TemplatePageProps } from "../../document";
|
||||
import type { Style } from "../../forme/style-types";
|
||||
import type { TemplateColorRoles, TemplateStyleContext, TemplateStyleSlots } from "../shared/types";
|
||||
import { useMemo } from "react";
|
||||
import { Page, StyleSheet, View } from "#react-pdf-renderer";
|
||||
import { useRender } from "../../context";
|
||||
import { useRenderedSectionIds, useResolvedNode } from "../../semantic/context";
|
||||
import { semanticNodeKeys } from "../../semantic/node-keys";
|
||||
import {
|
||||
CustomFieldContactItem,
|
||||
EmailContactItem,
|
||||
LocationContactItem,
|
||||
PhoneContactItem,
|
||||
WebsiteContactItem,
|
||||
} from "../shared/contact-item";
|
||||
import { TemplateProvider } from "../shared/context";
|
||||
import { getFeaturedSummaryLayout } from "../shared/featured-summary";
|
||||
import { filterSections } from "../shared/filtering";
|
||||
import { getTemplateMetrics } from "../shared/metrics";
|
||||
import { hasTemplatePicture } from "../shared/picture";
|
||||
import {
|
||||
Heading,
|
||||
SemanticContactListView,
|
||||
SemanticHeaderPicture,
|
||||
SemanticHeaderView,
|
||||
SemanticRegionTemplatePartView,
|
||||
SemanticRegionView,
|
||||
Text,
|
||||
} from "../shared/primitives";
|
||||
import { Section } from "../shared/sections";
|
||||
import { composeStyles } from "../shared/styles";
|
||||
import { createIconSlot, useTemplateBase } from "../shared/template-base";
|
||||
|
||||
type SmeargleStyles = Omit<TemplateStyleSlots, "page"> & {
|
||||
page: Style;
|
||||
header: Style;
|
||||
headerTitle: Style;
|
||||
headerKicker: Style;
|
||||
headerName: Style;
|
||||
contactList: Style;
|
||||
contactItem: Style;
|
||||
contactText: Style;
|
||||
picture: Style;
|
||||
standfirst: Style;
|
||||
sections: Style;
|
||||
};
|
||||
|
||||
type SmeargleTemplate = {
|
||||
colors: TemplateColorRoles;
|
||||
styles: SmeargleStyles;
|
||||
/** The summary set as a standfirst: the larger, italic introduction under a magazine headline. */
|
||||
standfirstStyles: TemplateStyleSlots;
|
||||
};
|
||||
|
||||
type SmeargleHeaderProps = {
|
||||
styles: SmeargleStyles;
|
||||
};
|
||||
|
||||
/**
|
||||
* Smeargle sets the resume like the opening page of a magazine feature: the headline as a small
|
||||
* uppercase kicker over a large display name, the summary as an italic standfirst, and italic
|
||||
* section headings. Contrast between the heading and body type carries the hierarchy, not boxes.
|
||||
*/
|
||||
export const SmearglePage = ({ page, pageSize, pageMinHeightStyle, showHeader, pageNumber }: TemplatePageProps) => {
|
||||
const data = useRender();
|
||||
const pageNodeKey = semanticNodeKeys.page(pageNumber);
|
||||
const { style: semanticPageStyle, size: semanticPageSize, ...semanticPageProps } = useResolvedNode(pageNodeKey);
|
||||
const { metadata } = data;
|
||||
const { colors, styles, standfirstStyles } = useSmeargleTemplate();
|
||||
const metrics = getTemplateMetrics(metadata.page);
|
||||
const mainSections = filterSections(page.main, data);
|
||||
const sidebarSections = page.fullWidth ? [] : filterSections(page.sidebar, data);
|
||||
const { featuredSummarySection, regularSections } = getFeaturedSummaryLayout({
|
||||
sections: mainSections,
|
||||
canFeatureSummary: showHeader,
|
||||
});
|
||||
const sections = useRenderedSectionIds(pageNodeKey, [
|
||||
...regularSections,
|
||||
...(featuredSummarySection ? sidebarSections.filter((section) => section !== "summary") : sidebarSections),
|
||||
]);
|
||||
|
||||
return (
|
||||
<Page
|
||||
{...semanticPageProps}
|
||||
size={semanticPageSize ?? pageSize}
|
||||
style={composeStyles(styles.page, pageMinHeightStyle, semanticPageStyle)}
|
||||
>
|
||||
<TemplateProvider pageNodeKey={pageNodeKey} styles={styles} colors={colors}>
|
||||
{showHeader && <Header styles={styles} />}
|
||||
|
||||
{featuredSummarySection && (
|
||||
<SemanticRegionTemplatePartView region="featured" partKeys={["featured-summary"]} style={styles.standfirst}>
|
||||
<TemplateProvider pageNodeKey={pageNodeKey} styles={standfirstStyles} colors={colors}>
|
||||
<Section section={featuredSummarySection} placement="main" showHeading={false} />
|
||||
</TemplateProvider>
|
||||
</SemanticRegionTemplatePartView>
|
||||
)}
|
||||
|
||||
<SemanticRegionView region="main" style={composeStyles(styles.sections, { rowGap: metrics.sectionGap })}>
|
||||
{sections.map((section) => (
|
||||
<Section key={section} section={section} placement="main" />
|
||||
))}
|
||||
</SemanticRegionView>
|
||||
</TemplateProvider>
|
||||
</Page>
|
||||
);
|
||||
};
|
||||
|
||||
const Header = ({ styles }: SmeargleHeaderProps) => {
|
||||
const { basics, picture } = useRender();
|
||||
const hasPicture = hasTemplatePicture(picture);
|
||||
|
||||
return (
|
||||
<SemanticHeaderView style={styles.header}>
|
||||
<View style={styles.headerTitle}>
|
||||
{basics.headline && <Text style={styles.headerKicker}>{basics.headline}</Text>}
|
||||
<Heading style={styles.headerName}>{basics.name}</Heading>
|
||||
|
||||
<SemanticContactListView style={styles.contactList}>
|
||||
<EmailContactItem email={basics.email} style={styles.contactItem} textStyle={styles.contactText} />
|
||||
<PhoneContactItem phone={basics.phone} style={styles.contactItem} textStyle={styles.contactText} />
|
||||
<LocationContactItem location={basics.location} style={styles.contactItem} textStyle={styles.contactText} />
|
||||
<WebsiteContactItem website={basics.website} style={styles.contactItem} textStyle={styles.contactText} />
|
||||
{basics.customFields.map((field) => (
|
||||
<CustomFieldContactItem
|
||||
key={field.id}
|
||||
field={field}
|
||||
style={styles.contactItem}
|
||||
textStyle={styles.contactText}
|
||||
/>
|
||||
))}
|
||||
</SemanticContactListView>
|
||||
</View>
|
||||
|
||||
{hasPicture && <SemanticHeaderPicture src={picture.url} style={styles.picture} />}
|
||||
</SemanticHeaderView>
|
||||
);
|
||||
};
|
||||
|
||||
const useSmeargleTemplate = (): SmeargleTemplate => {
|
||||
const { metadata, r, foreground, background, primary, metrics, base } = useTemplateBase();
|
||||
|
||||
return useMemo(() => {
|
||||
const colors: TemplateColorRoles = { foreground, background, primary };
|
||||
const { body, heading } = metadata.typography;
|
||||
const displayWeight = heading.fontWeights[0] ?? "400";
|
||||
const smallSize = body.fontSize * 0.85;
|
||||
|
||||
const baseStyles = StyleSheet.create({
|
||||
...base,
|
||||
page: {
|
||||
...base.page,
|
||||
paddingHorizontal: metrics.page.paddingHorizontal,
|
||||
paddingVertical: metrics.page.paddingVertical,
|
||||
rowGap: metrics.sectionGap,
|
||||
},
|
||||
section: {
|
||||
flexDirection: "column",
|
||||
rowGap: metrics.gapY(0.5),
|
||||
},
|
||||
sectionHeading: {
|
||||
fontWeight: displayWeight,
|
||||
fontStyle: "italic",
|
||||
color: foreground,
|
||||
},
|
||||
item: {
|
||||
rowGap: metrics.gapY(0.125),
|
||||
},
|
||||
levelContainer: {
|
||||
width: "100%",
|
||||
},
|
||||
header: {
|
||||
flexDirection: r.row,
|
||||
alignItems: "flex-end",
|
||||
columnGap: metrics.gapX(1.5),
|
||||
borderBottomWidth: 0.5,
|
||||
borderBottomColor: foreground,
|
||||
paddingBottom: metrics.gapY(1.25),
|
||||
},
|
||||
headerTitle: {
|
||||
flex: 1,
|
||||
...r.headerIdentity,
|
||||
rowGap: metrics.gapY(0.6),
|
||||
},
|
||||
headerKicker: {
|
||||
fontSize: smallSize,
|
||||
fontWeight: base.bold.fontWeight,
|
||||
// Tracking breaks the joins of cursive right-to-left scripts such as Arabic.
|
||||
letterSpacing: r.rtl ? 0 : smallSize * 0.18,
|
||||
textTransform: "uppercase",
|
||||
color: primary,
|
||||
},
|
||||
headerName: {
|
||||
fontSize: heading.fontSize * 2.25,
|
||||
fontWeight: displayWeight,
|
||||
lineHeight: 1.05,
|
||||
letterSpacing: -heading.fontSize * 0.02,
|
||||
},
|
||||
contactList: {
|
||||
flexDirection: r.row,
|
||||
flexWrap: "wrap",
|
||||
rowGap: metrics.gapY(0.25),
|
||||
columnGap: metrics.gapX(1),
|
||||
marginTop: metrics.gapY(0.25),
|
||||
},
|
||||
contactItem: {
|
||||
flexDirection: r.row,
|
||||
alignItems: "center",
|
||||
columnGap: metrics.gapX(1 / 6),
|
||||
},
|
||||
contactText: {
|
||||
fontSize: smallSize,
|
||||
},
|
||||
standfirst: {
|
||||
width: "85%",
|
||||
alignSelf: r.rtl ? "flex-end" : "flex-start",
|
||||
},
|
||||
sections: {
|
||||
flexDirection: "column",
|
||||
},
|
||||
});
|
||||
|
||||
// The standfirst keeps the body face, set larger and in italic.
|
||||
const standfirstText = {
|
||||
fontSize: body.fontSize * 1.15,
|
||||
fontStyle: "italic",
|
||||
lineHeight: 1.45,
|
||||
} satisfies Style;
|
||||
|
||||
const accentFor = ({ colors }: TemplateStyleContext) => colors.primary;
|
||||
|
||||
const styles = {
|
||||
...baseStyles,
|
||||
levelItem: (context) => ({ borderColor: accentFor(context) }),
|
||||
levelItemActive: (context) => ({ backgroundColor: accentFor(context) }),
|
||||
icon: createIconSlot({ metadata, accentFor }),
|
||||
} satisfies SmeargleStyles;
|
||||
|
||||
return {
|
||||
colors,
|
||||
styles,
|
||||
standfirstStyles: {
|
||||
...styles,
|
||||
richParagraph: { ...baseStyles.richParagraph, ...standfirstText },
|
||||
richListItemMarker: { ...baseStyles.richListItemMarker, ...standfirstText },
|
||||
richListItemContent: { ...baseStyles.richListItemContent, ...standfirstText },
|
||||
},
|
||||
};
|
||||
}, [metadata, r, primary, metrics, base, foreground, background]);
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
import type { TemplateSemanticManifest } from "../../semantic/template-manifest";
|
||||
import { itemHeaderRowPart } from "../../semantic/shared-parts";
|
||||
|
||||
export const smeargleSemanticManifest = {
|
||||
template: "smeargle",
|
||||
regions: [
|
||||
{ name: "header", placement: "main", origins: [] },
|
||||
{ name: "featured", placement: "main", origins: [] },
|
||||
{ name: "main", placement: "main", origins: ["main", "sidebar"] },
|
||||
],
|
||||
header: { region: "header", placement: "main" },
|
||||
specialSummary: { region: "featured", placement: "main", source: "main-with-header" },
|
||||
parts: [
|
||||
itemHeaderRowPart,
|
||||
{
|
||||
name: "featured-summary",
|
||||
key: "featured-summary",
|
||||
owner: { kind: "region", key: "featured" },
|
||||
binding: { type: "primitive", primitive: "View", source: "existing" },
|
||||
route: { parent: "owner", at: "start", take: "all" },
|
||||
},
|
||||
],
|
||||
} as const satisfies TemplateSemanticManifest;
|
||||
@@ -14,8 +14,10 @@ export const templateSchema = z.enum([
|
||||
"meowth",
|
||||
"onyx",
|
||||
"pikachu",
|
||||
"porygon",
|
||||
"rhyhorn",
|
||||
"scizor",
|
||||
"smeargle",
|
||||
]);
|
||||
|
||||
export type Template = z.infer<typeof templateSchema>;
|
||||
@@ -49,6 +51,8 @@ export const templateLayouts = {
|
||||
meowth: oneColumn,
|
||||
onyx: oneColumn,
|
||||
pikachu: { columns: 2, sidebarSide: "left", headerPlacement: "main-only", atsSafe: false },
|
||||
porygon: oneColumn,
|
||||
rhyhorn: oneColumn,
|
||||
scizor: oneColumn,
|
||||
smeargle: oneColumn,
|
||||
} as const satisfies Record<Template, TemplateLayout>;
|
||||
|
||||
@@ -58,7 +58,7 @@ For each section the user wants to include, gather specific details. Never inven
|
||||
|
||||
Ask about preferences:
|
||||
|
||||
- Template preference (15 available: azurill, bronzor, chikorita, ditto, ditgar, gengar, glalie, kakuna, lapras, leafish, meowth, onyx, pikachu, rhyhorn, scizor)
|
||||
- Template preference (17 available: azurill, bronzor, chikorita, ditto, ditgar, gengar, glalie, kakuna, lapras, leafish, meowth, onyx, pikachu, porygon, rhyhorn, scizor, smeargle)
|
||||
- Page format: A4 or Letter
|
||||
- Which sections to include and their order
|
||||
|
||||
|
||||
@@ -832,7 +832,7 @@ Choose one coherent shape for each union value. Required fields are local to tha
|
||||
| `customSections[].items[].recipient` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The recipient's address block as HTML (name, title, company, address, email). |
|
||||
| `customSections[].items[].content` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The cover letter body as HTML (salutation, paragraphs, closing, signature). |
|
||||
| `metadata` | `object` | yes | — | Metadata for the resume, such as template, layout, typography, etc. This section describes the overall design and appearance of the resume. |
|
||||
| `metadata.template` | `string` | yes | enum: ["azurill","bronzor","chikorita","ditgar","ditto","gengar","glalie","kakuna","lapras","leafish","meowth","onyx","pikachu","rhyhorn","scizor"]; default: "onyx" | The template to use for the resume. Determines the overall design and appearance of the resume. |
|
||||
| `metadata.template` | `string` | yes | enum: ["azurill","bronzor","chikorita","ditgar","ditto","gengar","glalie","kakuna","lapras","leafish","meowth","onyx","pikachu","porygon","rhyhorn","scizor","smeargle"]; default: "onyx" | The template to use for the resume. Determines the overall design and appearance of the resume. |
|
||||
| `metadata.layout` | `object` | yes | — | The layout of the resume. Determines the structure and arrangement of the sections on the resume. |
|
||||
| `metadata.layout.sidebarWidth` | `number` | yes | minimum: 10; maximum: 50; default: 35 | The width of the sidebar column, defined as a percentage of the page width. |
|
||||
| `metadata.layout.sidebarSide` | `string` | no | enum: ["left","right"] | Which side of the page the sidebar column sits on in two-column templates. When unset, each template uses its own side (and right-to-left resumes mirror it). |
|
||||
|
||||
Reference in New Issue
Block a user