/** * tuah-site.css * Tuah Open Journal Collection — Site Style Sheet * Target: OJS 3.3.0.14, tema Default (bukan tema kustom) * * Dipasang lewat: Administration > Site Settings > Appearance > Site Style Sheet * Tidak memerlukan akses server, template, atau JavaScript. * * ------------------------------------------------------------------ * VERIFIKASI SELECTOR SEBELUM PERCAYA PENUH * ------------------------------------------------------------------ * CSS ini menyasar markup tema Default OJS 3.3 pada halaman site index: * * .page_index_site * ul.journals * li * .thumb > a > img * .body * h3 > a * .description (isi field Journal Description, termasuk ) * ul.links > li.view / li.current * * Buka situs, klik kanan pada salah satu kartu jurnal > Inspect. * Kalau nama kelasnya berbeda, sesuaikan di bagian 4-6. Sisanya tetap jalan. * * Daftar isi * 1. Token * 2. Kerangka halaman * 3. Judul seksi "Journals" * 4. Kartu jurnal * 5. Sampul * 6. Catalog record (tabel metadata di dalam .description) * 7. Tautan aksi * 8. Footer & navigasi * 9. Responsif * 10. Aksesibilitas */ /* ========================================================================== 1. TOKEN Palet diambil dari banner situs: tinta, gading, emas antik. ========================================================================== */ .pkp_structure_page { --tuah-ink: #17140f; --tuah-ink-soft: #3d3830; --tuah-muted: #7a7266; --tuah-paper: #faf8f3; --tuah-card: #ffffff; --tuah-rule: #e2dacb; --tuah-rule-soft: #efe9dc; --tuah-gold: #a8842f; --tuah-gold-bright: #c9a961; --tuah-gold-wash: #fbf5e6; --tuah-shadow-card: 0 1px 2px rgba(23, 20, 15, .05), 0 12px 28px -14px rgba(23, 20, 15, .22); --tuah-shadow-book: 10px 12px 26px -10px rgba(23, 20, 15, .45); --tuah-serif: Georgia, 'Times New Roman', 'Noto Serif', serif; --tuah-sans: 'Segoe UI', system-ui, -apple-system, Arial, sans-serif; --tuah-max: 1140px; } /* ========================================================================== 2. KERANGKA HALAMAN ========================================================================== */ body.pkp_page_index, .pkp_structure_page { background: var(--tuah-paper); color: var(--tuah-ink-soft); } .pkp_structure_main, #pkp_content_main { max-width: var(--tuah-max); margin-inline: auto; padding-inline: 24px; float: none; width: auto; } /* Tema Default membungkus konten dalam kolom mengambang. Dinetralkan agar kartu bisa memakai lebar penuh kontainer. */ .pkp_structure_content { max-width: none; padding: 0; } .page_index_site { padding-block: 8px 56px; } /* Blok deskripsi situs, kalau field About the Site diisi. */ .page_index_site .about_site, #homepageAbout { max-width: 72ch; margin-block: 32px 8px; font-family: var(--tuah-serif); font-size: 1.0625rem; line-height: 1.7; color: var(--tuah-ink-soft); } /* ========================================================================== 3. JUDUL SEKSI "JOURNALS" ========================================================================== */ .page_index_site > h2 { margin: 40px 0 4px; font-family: var(--tuah-sans); font-size: .6875rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--tuah-gold); } .page_index_site > h2::after { content: ""; display: block; width: 100%; height: 1px; margin-top: 14px; background: linear-gradient(90deg, var(--tuah-gold-bright) 0, var(--tuah-rule) 22%, transparent 60%); } /* ========================================================================== 4. KARTU JURNAL ========================================================================== */ .page_index_site ul.journals { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 22px; } .page_index_site ul.journals > li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 34px; margin: 0; padding: 30px 32px; background: var(--tuah-card); border: 1px solid var(--tuah-rule); border-radius: 4px; box-shadow: var(--tuah-shadow-card); transition: box-shadow .22s ease, border-color .22s ease; } .page_index_site ul.journals > li:hover { border-color: var(--tuah-gold-bright); box-shadow: 0 1px 2px rgba(23, 20, 15, .05), 0 20px 40px -16px rgba(23, 20, 15, .3); } /* Aksen emas tipis di tepi kiri kartu. */ .page_index_site ul.journals > li { position: relative; overflow: hidden; } .page_index_site ul.journals > li::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; width: 3px; background: linear-gradient(180deg, var(--tuah-gold-bright), var(--tuah-gold)); opacity: 0; transition: opacity .22s ease; } .page_index_site ul.journals > li:hover::before { opacity: 1; } .page_index_site ul.journals .body { min-width: 0; } .page_index_site ul.journals h3 { margin: 0 0 16px; font-family: var(--tuah-serif); font-size: 1.4375rem; font-weight: 400; line-height: 1.28; letter-spacing: -.01em; } .page_index_site ul.journals h3 a { color: var(--tuah-ink); text-decoration: none; border-bottom: 1px solid transparent; } .page_index_site ul.journals h3 a:hover, .page_index_site ul.journals h3 a:focus-visible { color: var(--tuah-gold); border-bottom-color: var(--tuah-gold-bright); } /* ========================================================================== 5. SAMPUL ========================================================================== */ .page_index_site ul.journals .thumb { margin: 0; width: 200px; } .page_index_site ul.journals .thumb img { display: block; width: 100%; height: auto; border-radius: 2px; box-shadow: var(--tuah-shadow-book); transition: transform .25s ease; } .page_index_site ul.journals > li:hover .thumb img { transform: translateY(-3px); } /* ========================================================================== 6. CATALOG RECORD Tabel metadata berasal dari field Journal Description, bukan dari tema. Ditata ulang menjadi kartu katalog, bukan tabel data. ========================================================================== */ .page_index_site .description { font-family: var(--tuah-sans); font-size: .9375rem; line-height: 1.72; color: var(--tuah-ink-soft); } .page_index_site .description p { margin: 0 0 14px; max-width: 78ch; } .page_index_site .description a { color: var(--tuah-gold); text-decoration: none; border-bottom: 1px solid var(--tuah-rule); } .page_index_site .description a:hover, .page_index_site .description a:focus-visible { border-bottom-color: var(--tuah-gold); } /* Banner "Call for Paper" dan deretan logo pengindeks. */ .page_index_site .description img { max-width: 100%; height: auto; vertical-align: middle; } /* -- tabel menjadi catalog record -- */ .page_index_site .description table { width: 100%; margin: 0 0 18px; border-collapse: collapse; background: var(--tuah-gold-wash); border: 1px solid var(--tuah-rule); border-radius: 3px; overflow: hidden; font-size: .8125rem; line-height: 1.6; } .page_index_site .description table td, .page_index_site .description table th { padding: 9px 16px; border: 0; border-bottom: 1px solid var(--tuah-rule-soft); text-align: start; vertical-align: top; } .page_index_site .description table tr:last-child td, .page_index_site .description table tr:last-child th { border-bottom: 0; } /* Kolom pertama = label. Huruf kecil berspasi, gaya kartu katalog. */ .page_index_site .description table td:first-child, .page_index_site .description table th:first-child { width: 168px; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tuah-muted); background: rgba(255, 255, 255, .55); border-inline-end: 1px solid var(--tuah-rule-soft); white-space: nowrap; } /* Isi field Description sering membungkus label dengan . Penebalan ganda dinetralkan agar label tetap rata rasa. */ .page_index_site .description table td:first-child strong, .page_index_site .description table td:first-child b { font-weight: 700; } .page_index_site .description table td:not(:first-child) { color: var(--tuah-ink-soft); } .page_index_site .description table td:not(:first-child) strong, .page_index_site .description table td:not(:first-child) b { font-weight: 600; color: var(--tuah-ink); } /* Judul yang ditulis manual di dalam deskripsi, misalnya "Journal Information" dan "About the Journal" pada GPP. */ .page_index_site .description h2, .page_index_site .description h3, .page_index_site .description h4 { margin: 20px 0 10px; font-family: var(--tuah-sans); font-size: .6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tuah-gold); } /* ========================================================================== 7. TAUTAN AKSI ========================================================================== */ .page_index_site ul.links { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--tuah-rule-soft); } .page_index_site ul.links li { margin: 0; padding: 0; } .page_index_site ul.links a { display: inline-block; padding: 9px 20px; border-radius: 2px; font-family: var(--tuah-sans); font-size: .8125rem; font-weight: 600; letter-spacing: .02em; text-decoration: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease; } .page_index_site ul.links .view a { background: var(--tuah-ink); color: #fff; border: 1px solid var(--tuah-ink); } .page_index_site ul.links .view a:hover, .page_index_site ul.links .view a:focus-visible { background: var(--tuah-gold); border-color: var(--tuah-gold); } .page_index_site ul.links .current a { background: transparent; color: var(--tuah-ink-soft); border: 1px solid var(--tuah-rule); } .page_index_site ul.links .current a:hover, .page_index_site ul.links .current a:focus-visible { color: var(--tuah-gold); border-color: var(--tuah-gold); background: var(--tuah-gold-wash); } /* ========================================================================== 8. FOOTER & NAVIGASI ========================================================================== */ .pkp_navigation_user { font-family: var(--tuah-sans); font-size: .8125rem; } .pkp_structure_footer_wrapper { margin-top: 8px; border-top: 1px solid var(--tuah-rule); background: var(--tuah-card); } .pkp_structure_footer { max-width: var(--tuah-max); margin-inline: auto; padding: 30px 24px; } .pkp_brand_footer img { opacity: .5; transition: opacity .2s ease; } .pkp_brand_footer img:hover { opacity: 1; } /* ========================================================================== 9. RESPONSIF ========================================================================== */ @media (max-width: 900px) { .page_index_site ul.journals > li { grid-template-columns: 150px minmax(0, 1fr); gap: 24px; padding: 24px; } .page_index_site ul.journals .thumb { width: 150px; } .page_index_site .description table td:first-child, .page_index_site .description table th:first-child { width: 130px; white-space: normal; } } @media (max-width: 640px) { #pkp_content_main, .pkp_structure_main { padding-inline: 16px; } .page_index_site ul.journals > li { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px; } .page_index_site ul.journals .thumb { width: 132px; } .page_index_site ul.journals h3 { font-size: 1.25rem; } /* Tabel dijadikan bertumpuk agar tidak memaksa gulir mendatar. */ .page_index_site .description table, .page_index_site .description table tbody, .page_index_site .description table tr, .page_index_site .description table td, .page_index_site .description table th { display: block; width: auto; } .page_index_site .description table td:first-child, .page_index_site .description table th:first-child { width: auto; padding-bottom: 2px; border-inline-end: 0; border-bottom: 0; background: transparent; } .page_index_site .description table td:not(:first-child) { padding-top: 0; } .page_index_site ul.links a { display: block; text-align: center; } } /* ========================================================================== 10. AKSESIBILITAS ========================================================================== */ .page_index_site a:focus-visible, .pkp_navigation_user a:focus-visible { outline: 2px solid var(--tuah-gold); outline-offset: 3px; } @media (prefers-reduced-motion: reduce) { .page_index_site ul.journals > li, .page_index_site ul.journals .thumb img, .page_index_site ul.journals > li::before, .page_index_site ul.links a { transition: none; } .page_index_site ul.journals > li:hover .thumb img { transform: none; } }