UNPKG

jsonresume-theme-modern-plain

Version:

A clean, modern JSON Resume theme with a professional two-column layout, PT Sans typography, and optimized for single-page print output

770 lines (668 loc) 13.7 kB
@import url('https://fonts.googleapis.com/css2?family=PT+Sans:ital,wght@0,400;0,700;1,400&display=swap'); :root { --primary-color: #4a89dc; --primary-dark-color: #205bb5; --text-color: #333; --text-secondary-color: #555; --border-color: #eee; --background-color: #f0f0f0; --white: #fff; --section-spacing: 0.8rem; --element-spacing: 0.4em; } *, ::after, ::before { box-sizing: border-box; margin: 0; padding: 0; font-family: 'PT Sans'; } html { -webkit-print-color-adjust: exact; print-color-adjust: exact; font-size: 10pt; line-height: 1.2 } body { background-color: var(--background-color); color: var(--text-color); padding: 1rem 0 } .resume-container { width: 210mm; min-height: 297mm; margin: 1rem auto; background-color: var(--white); padding: 15mm 10mm; box-shadow: 0 0 10px rgba(0, 0, 0, .1); display: flex; flex-direction: column } h1, h2, h3, h4, h5, h6 { color: var(--primary-dark-color); margin-bottom: .4em; margin-top: .8em; line-height: 1.1; letter-spacing: .02em } .header-left h1 { font-size: 2rem; font-weight: 600; color: var(--primary-color); margin-bottom: .1em; line-height: 1; margin-top: 0; letter-spacing: normal } h1 { font-size: 1.2rem; font-weight: 600; margin-bottom: .3em; border-bottom: 1px solid var(--border-color); padding-bottom: .2em; color: var(--primary-dark-color); margin-top: .8em } .summary h1 { margin-top: 0 } .notes h1 { margin-top: 1rem } h2 { font-size: 1.1rem; font-weight: 500; color: var(--primary-color); margin-top: 0; letter-spacing: .02em } h3 { font-size: 1rem; font-weight: 700; color: #333; margin-top: 0; margin-bottom: .4em; letter-spacing: normal } li, p { margin-bottom: .3em; line-height: 1.3 } ul { list-style: none; padding-left: 0 } .experience-details ul { list-style: disc; padding-left: 1.5em } .experience-details li { margin-bottom: 0.35em; font-size: .95rem; line-height: 1.35 } b, strong { font-weight: 700 } .projects b, .summary strong { color: #333 } a { color: var(--primary-color); text-decoration: none } a:hover, a:focus { text-decoration: underline; outline: 2px solid #4a89dc; outline-offset: 2px; } .resume-header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid var(--primary-color); padding-bottom: .8rem; margin-bottom: .8rem } .header-left .availability, .header-left .job-title { font-size: 1.1rem; color: #555; font-weight: 700; line-height: 1.2; letter-spacing: normal } .header-left .availability { font-size: 1rem; font-weight: 400; color: #333; letter-spacing: normal } .header-right { text-align: right; font-size: .95rem; line-height: 1.4 } .header-right > span:first-of-type, .header-right > strong:first-of-type { margin-bottom: 0.25em; display: inline-block; } .header-right strong { font-weight: 700 } .social-links { margin-top: .4em } .social-links a { display: inline-flex; align-items: center; text-decoration: none; color: #555 !important; font-size: 1rem; transition: color .2s ease } .social-links a:hover, .social-links a:focus { color: #4a89dc !important; outline: 2px solid #4a89dc; outline-offset: 2px; } .social-links svg { margin-right: .3em; fill: currentColor; vertical-align: -.15em } .social-links .separator { color: #ccc; margin: 0 .8em; font-size: 1rem; vertical-align: middle; line-height: 1; } .summary { margin-bottom: .8rem } .summary p { font-size: 1rem; line-height: 1.3 } .tagline { font-style: italic; color: #555; text-align: center; margin-top: .6rem; letter-spacing: .01em; } .summary-accent { color: #3e3e3e; font-weight: 600 } .tech-keyword { font-weight: 600; color: #494949 } .main-content { display: flex; flex-grow: 1; gap: 13mm; } .left-column { flex: 3; min-width: 0 } .right-column { flex: 2; min-width: 0 } .experience-entry { display: flex; margin-bottom: .8rem } .date-cell { flex: 0 0 auto; min-width: 30pt; max-width: 80pt; text-align: right; padding-right: 0.4em; font-size: 1rem; font-weight: 700; color: var(--text-secondary-color); line-height: 1.1; letter-spacing: normal } .date-cell span { display: block } .date-cell .arrow { color: var(--primary-color) } .experience-details { flex-grow: 1; min-width: 0; padding-left: 0.2em; } .right-column section { margin-bottom: 0.65rem; } .education-entry p { margin-bottom: 0.2em; } .education-entry p:first-of-type { margin-bottom: 0.6em; } .education-entry p:has(strong.certification) { margin-bottom: 0.1em; } .education-entry strong { color: var(--text-color); font-weight: 700; font-size: 1.05rem; display: block; margin-bottom: .1em; letter-spacing: .02em } strong.certification { font-weight: 600; color: #666; font-size: .98rem; letter-spacing: .01em; display: block; margin-bottom: .05em } .education-entry span { font-size: .95rem; color: #555 } .education-entry p > span { font-weight: 300; margin-left: 0.2em; color: #666; font-size: .9rem; } .education-entry p strong.certification { display: inline; margin-bottom: 0; } .education-entry p a { display: inline; } .skills-entry strong { display: block; color: var(--primary-color); font-weight: 700; font-size: 1.05rem; margin-bottom: 0.2em; letter-spacing: .02em } .skills-entry span { font-size: .95rem; color: #555; line-height: 1.35; display: block; margin-bottom: 0.4em; } .languages-table { width: 100%; border-collapse: collapse } .languages-table td { padding: 0.1em 0; font-size: .95rem; vertical-align: top } .languages-table td:first-child { font-weight: 700; color: var(--primary-color); padding-right: 1em; font-size: 1.05rem; letter-spacing: .02em } .languages-table td:last-child { color: #555; font-weight: 700 } .projects p { font-size: .95rem; line-height: 1.3; color: #555 } .cultural-values h1, .notes h1 { color: #205bb5 } .cultural-values ul, .notes ul { list-style: disc; padding-left: 1.5em; font-size: .9rem; color: #555; line-height: 1.15 } .cultural-values li, .notes li { margin-bottom: 0.15em } .projects-list li { margin-bottom: 0.1em; } .right-column h1 { margin-bottom: 0.2em; margin-top: 0.5em; } .experience-details h3 { margin-bottom: 0.5em; } .experience-details h2 { font-size: 1.1rem; font-weight: 500; color: var(--primary-color); margin-top: 0; letter-spacing: .02em; } .experience-details h3 { font-size: 1rem; font-weight: 600; color: #666; margin-top: 0; margin-bottom: 0.5em; letter-spacing: normal; } .company-url { color: #888; text-decoration: none; font-weight: 400; font-size: 0.95em; transition: color 0.2s ease; display: inline-flex; align-items: center; } .company-url:hover, .company-url:focus { color: #4a89dc; text-decoration: none; outline: 2px solid #4a89dc; outline-offset: 2px; } .location { font-weight: 400; font-size: 0.95em; color: #777; margin-left: 0.5em; letter-spacing: normal; } .location-country { font-weight: 400; font-size: 0.9em; color: #888; letter-spacing: normal; margin-left: 0.3em; vertical-align: baseline; } .experience-details h3 .separator { color: #bbb; margin: 0 0.4em; font-weight: 300; font-size: 0.95em; vertical-align: baseline; } @media print { @page { size: A4; margin: 2mm 1mm 1mm 1mm /* Reduced from 8mm for better content area */ } html { font-size: 10pt; line-height: 1.2; -webkit-print-color-adjust: exact; print-color-adjust: exact } body { background-color: #fff !important; padding: 5mm 0 !important } .resume-container { width: 100% !important; min-height: auto !important; margin: 0 !important; padding: 6mm 8mm !important; /* Reduced from 15mm 10mm */ box-shadow: none !important; border: none !important } .resume-header { padding-bottom: .2rem !important; /* Reduced */ margin-bottom: .3rem !important; /* Reduced */ border-bottom: 1px solid #4a89dc !important } .summary { margin-bottom: .4rem !important /* Reduced */ } .main-content { gap: 3mm !important /* Reduced from 6mm */ } h1, h2, h3, h4, h5, h6 { margin-top: .2em !important; /* Reduced */ margin-bottom: .05em !important; /* Reduced */ letter-spacing: normal !important } h1 { font-size: 1.15rem; border-bottom-color: var(--border-color); color: var(--primary-dark-color) } .header-left h1 { font-size: 1.8rem; color: var(--primary-color) } h2 { font-size: 1.05rem; color: var(--primary-color) } h3 { font-size: .95rem; color: var(--text-secondary-color); font-weight: 600; margin-bottom: 0.25em; } .experience-details h3 a { color: #333 !important; text-decoration: none !important; } .cultural-values h1, .professional-approach h1, .notes h1 { font-size: 1.05rem; margin-top: .4em; } li, p, span { line-height: 1.22; margin-bottom: .14em; widows: 2; orphans: 2 } .languages-table td:last-child { color: #333 !important } .left-column, .right-column { background-color: transparent !important } .experience-entry { margin-bottom: 0.15rem !important; /* Reduced from 0.2rem */ page-break-inside: avoid !important; break-inside: avoid !important; } .experience-details ul { margin-bottom: 0.1rem; } .experience-details { page-break-inside: avoid !important; break-inside: avoid !important; } .right-column section { margin-bottom: 0.25rem; } .experience-details li { font-size: .85rem; margin-bottom: 0.1em; line-height: 1.15; } .experience-details h2, .experience-details h3 { margin-bottom: 0.2em; } .education-entry strong, strong.certification { font-size: .85rem !important; letter-spacing: normal } .cultural-values ul, .professional-approach ul, .notes ul, .projects p { font-size: .85rem; line-height: 1.15 } a { text-decoration: none !important } .social-links svg { fill: currentColor } .education-entry p > span { font-weight: 300 !important; color: #555 !important; font-size: .85rem !important; } .notes { page-break-before: avoid; } } @media screen and (max-width: 768px) { body { padding: 0; background-color: #fff; } .resume-container { width: 100%; min-height: auto; margin: 0; padding: 1rem; box-shadow: none; } .resume-header { flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 1rem; } .header-left { flex: 1; min-width: 0; } .header-right { text-align: right; flex-shrink: 0; font-size: 0.85rem; } .main-content { flex-direction: column; gap: 1.5rem; } .left-column, .right-column { width: 100%; } .experience-entry { flex-direction: column; margin-bottom: 1.2rem; } .date-cell { flex: none; text-align: left; padding-right: 0; margin-bottom: 0.3em; font-size: 0.9rem; display: flex; flex-direction: row-reverse; justify-content: flex-end; } .date-cell span { display: inline; } .date-cell .arrow { margin: 0 0.4em; font-size: 0; } .date-cell .arrow::after { content: "→"; font-size: 0.9rem; } .header-left h1 { font-size: 1.6rem; } .header-left .job-title { font-size: 1rem; } h1 { font-size: 1.1rem; } h2 { font-size: 1rem; } h3 { font-size: 0.95rem; } .social-links { display: flex; flex-wrap: wrap; gap: 0.5rem; } .social-links .separator { display: none; } } @media screen and (max-width: 480px) { .resume-container { padding: 0.8rem; } .resume-header { flex-direction: column; align-items: flex-start; gap: 0.6rem; } .header-right { text-align: left; font-size: 0.8rem; } .header-left h1 { font-size: 1.4rem; } .header-left .job-title { font-size: 0.95rem; } h1 { font-size: 1rem; } .experience-details li, .summary p, .education-entry span, .skills-entry span { font-size: 0.9rem; } }