I’ll build this as a strong static main stylesheet for RX Theme: CSS variables, reset, typography, layout, header, navigation, article, cards, buttons, forms, tables, accessibility, responsive rules, print style, and utility classes.
Friend, paste this into:
assets/static/static-css/rx-main.css
This is static CSS only. Later your dynamic CSS can override colors, fonts, spacing, dark mode, category colors, user settings, etc.
/*!
Theme Name: RX Theme
File: assets/static/static-css/rx-main.css
Description: Main static stylesheet for RX Theme.
Author: RxHarun
Version: 1.0.0
*/
/* =========================================================
01. CSS ROOT VARIABLES
========================================================= */
:root {
/* Brand Colors */
--rx-color-primary: #0b63ce;
--rx-color-primary-dark: #084a9c;
--rx-color-primary-light: #e8f2ff;
--rx-color-secondary: #0f766e;
--rx-color-accent: #f59e0b;
--rx-color-success: #15803d;
--rx-color-warning: #b45309;
--rx-color-danger: #b91c1c;
--rx-color-info: #0369a1;
/* Text Colors */
--rx-color-text: #1f2937;
--rx-color-text-soft: #4b5563;
--rx-color-text-muted: #6b7280;
--rx-color-heading: #111827;
/* Background Colors */
--rx-color-bg: #ffffff;
--rx-color-bg-soft: #f9fafb;
--rx-color-bg-muted: #f3f4f6;
--rx-color-surface: #ffffff;
/* Border */
--rx-color-border: #e5e7eb;
--rx-color-border-dark: #d1d5db;
/* Medical UI Colors */
--rx-medical-blue: #0b63ce;
--rx-medical-green: #0f766e;
--rx-medical-red: #dc2626;
--rx-medical-yellow: #f59e0b;
/* Font Family */
--rx-font-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--rx-font-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
--rx-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
/* Font Size */
--rx-text-xs: 0.75rem;
--rx-text-sm: 0.875rem;
--rx-text-base: 1rem;
--rx-text-md: 1.0625rem;
--rx-text-lg: 1.125rem;
--rx-text-xl: 1.25rem;
--rx-text-2xl: 1.5rem;
--rx-text-3xl: 1.875rem;
--rx-text-4xl: 2.25rem;
--rx-text-5xl: 3rem;
/* Line Height */
--rx-leading-tight: 1.25;
--rx-leading-normal: 1.6;
--rx-leading-relaxed: 1.8;
/* Spacing */
--rx-space-1: 0.25rem;
--rx-space-2: 0.5rem;
--rx-space-3: 0.75rem;
--rx-space-4: 1rem;
--rx-space-5: 1.25rem;
--rx-space-6: 1.5rem;
--rx-space-8: 2rem;
--rx-space-10: 2.5rem;
--rx-space-12: 3rem;
--rx-space-16: 4rem;
--rx-space-20: 5rem;
/* Layout */
--rx-container: 1200px;
--rx-container-narrow: 860px;
--rx-sidebar-width: 320px;
--rx-header-height: 72px;
/* Radius */
--rx-radius-sm: 0.375rem;
--rx-radius-md: 0.5rem;
--rx-radius-lg: 0.75rem;
--rx-radius-xl: 1rem;
--rx-radius-2xl: 1.5rem;
--rx-radius-full: 999px;
/* Shadow */
--rx-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
--rx-shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
--rx-shadow-lg: 0 10px 24px rgba(15, 23, 42, 0.12);
/* Transition */
--rx-transition-fast: 150ms ease;
--rx-transition: 250ms ease;
--rx-transition-slow: 350ms ease;
/* Z Index */
--rx-z-header: 100;
--rx-z-dropdown: 200;
--rx-z-modal: 500;
--rx-z-toast: 999;
}
/* =========================================================
02. MODERN RESET
========================================================= */
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-size: 100%;
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
min-height: 100vh;
font-family: var(--rx-font-base);
font-size: var(--rx-text-base);
line-height: var(--rx-leading-normal);
color: var(--rx-color-text);
background: var(--rx-color-bg);
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
img,
picture,
svg,
video,
canvas {
display: block;
max-width: 100%;
height: auto;
}
iframe {
max-width: 100%;
border: 0;
}
button,
input,
textarea,
select {
font: inherit;
}
button {
cursor: pointer;
}
a {
color: var(--rx-color-primary);
text-decoration-thickness: 1px;
text-underline-offset: 0.2em;
}
a:hover {
color: var(--rx-color-primary-dark);
}
p,
h1,
h2,
h3,
h4,
h5,
h6,
figure,
blockquote,
dl,
dd {
margin-top: 0;
}
ul,
ol {
padding-left: 1.25rem;
}
::selection {
color: #ffffff;
background: var(--rx-color-primary);
}
/* =========================================================
03. ACCESSIBILITY
========================================================= */
.screen-reader-text,
.sr-only {
position: absolute !important;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
white-space: nowrap;
border: 0;
clip: rect(0, 0, 0, 0);
}
.screen-reader-text:focus,
.sr-only:focus {
position: fixed !important;
top: 1rem;
left: 1rem;
z-index: var(--rx-z-toast);
width: auto;
height: auto;
padding: 0.75rem 1rem;
clip: auto;
color: #ffffff;
background: var(--rx-color-primary);
border-radius: var(--rx-radius-md);
}
:focus-visible {
outline: 3px solid rgba(11, 99, 206, 0.35);
outline-offset: 3px;
}
.skip-link {
position: fixed;
top: -100px;
left: 1rem;
z-index: var(--rx-z-toast);
padding: 0.75rem 1rem;
color: #ffffff;
background: var(--rx-color-primary);
border-radius: var(--rx-radius-md);
transition: top var(--rx-transition-fast);
}
.skip-link:focus {
top: 1rem;
}
/* =========================================================
04. TYPOGRAPHY
========================================================= */
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--rx-font-heading);
font-weight: 800;
line-height: var(--rx-leading-tight);
color: var(--rx-color-heading);
letter-spacing: -0.025em;
}
h1 {
font-size: clamp(2rem, 4vw, var(--rx-text-5xl));
margin-bottom: var(--rx-space-6);
}
h2 {
font-size: clamp(1.625rem, 3vw, var(--rx-text-4xl));
margin-top: var(--rx-space-10);
margin-bottom: var(--rx-space-4);
}
h3 {
font-size: clamp(1.375rem, 2vw, var(--rx-text-3xl));
margin-top: var(--rx-space-8);
margin-bottom: var(--rx-space-3);
}
h4 {
font-size: var(--rx-text-xl);
margin-top: var(--rx-space-6);
margin-bottom: var(--rx-space-3);
}
h5 {
font-size: var(--rx-text-lg);
margin-bottom: var(--rx-space-2);
}
h6 {
font-size: var(--rx-text-base);
margin-bottom: var(--rx-space-2);
text-transform: uppercase;
letter-spacing: 0.05em;
}
p {
margin-bottom: var(--rx-space-5);
}
small {
font-size: var(--rx-text-sm);
}
strong,
b {
font-weight: 700;
}
code,
kbd,
pre,
samp {
font-family: var(--rx-font-mono);
}
code {
padding: 0.15rem 0.35rem;
font-size: 0.9em;
color: #be123c;
background: #fff1f2;
border-radius: var(--rx-radius-sm);
}
pre {
overflow-x: auto;
padding: var(--rx-space-5);
color: #e5e7eb;
background: #111827;
border-radius: var(--rx-radius-lg);
}
pre code {
padding: 0;
color: inherit;
background: transparent;
}
blockquote {
margin: var(--rx-space-8) 0;
padding: var(--rx-space-5) var(--rx-space-6);
color: var(--rx-color-text-soft);
background: var(--rx-color-bg-soft);
border-left: 5px solid var(--rx-color-primary);
border-radius: 0 var(--rx-radius-lg) var(--rx-radius-lg) 0;
}
hr {
margin: var(--rx-space-10) 0;
border: 0;
border-top: 1px solid var(--rx-color-border);
}
/* =========================================================
05. GLOBAL LAYOUT
========================================================= */
.rx-site {
min-height: 100vh;
display: flex;
flex-direction: column;
}
.rx-main {
flex: 1;
}
.rx-container {
width: min(100% - 2rem, var(--rx-container));
margin-inline: auto;
}
.rx-container-narrow {
width: min(100% - 2rem, var(--rx-container-narrow));
margin-inline: auto;
}
.rx-section {
padding-block: var(--rx-space-16);
}
.rx-section-sm {
padding-block: var(--rx-space-10);
}
.rx-grid {
display: grid;
gap: var(--rx-space-6);
}
.rx-grid-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rx-grid-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rx-grid-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.rx-content-sidebar {
display: grid;
grid-template-columns: minmax(0, 1fr) var(--rx-sidebar-width);
gap: var(--rx-space-8);
align-items: start;
}
.rx-sidebar-left {
grid-template-columns: var(--rx-sidebar-width) minmax(0, 1fr);
}
/* =========================================================
06. HEADER
========================================================= */
.rx-site-header {
position: sticky;
top: 0;
z-index: var(--rx-z-header);
background: rgba(255, 255, 255, 0.94);
border-bottom: 1px solid var(--rx-color-border);
backdrop-filter: blur(12px);
}
.rx-header-inner {
min-height: var(--rx-header-height);
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--rx-space-5);
}
.rx-site-branding {
display: flex;
align-items: center;
gap: var(--rx-space-3);
min-width: 0;
}
.rx-site-logo {
width: 44px;
height: 44px;
object-fit: contain;
border-radius: var(--rx-radius-md);
}
.rx-site-title {
margin: 0;
font-size: var(--rx-text-xl);
font-weight: 900;
line-height: 1.1;
}
.rx-site-title a {
color: var(--rx-color-heading);
text-decoration: none;
}
.rx-site-description {
margin: 0;
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
}
/* =========================================================
07. NAVIGATION
========================================================= */
.rx-primary-nav {
display: flex;
align-items: center;
gap: var(--rx-space-2);
}
.rx-menu {
display: flex;
align-items: center;
gap: var(--rx-space-1);
margin: 0;
padding: 0;
list-style: none;
}
.rx-menu li {
position: relative;
}
.rx-menu a {
display: inline-flex;
align-items: center;
gap: 0.35rem;
padding: 0.65rem 0.8rem;
font-size: var(--rx-text-sm);
font-weight: 700;
color: var(--rx-color-text);
text-decoration: none;
border-radius: var(--rx-radius-md);
transition:
color var(--rx-transition-fast),
background var(--rx-transition-fast);
}
.rx-menu a:hover,
.rx-menu .current-menu-item > a,
.rx-menu .current_page_item > a {
color: var(--rx-color-primary);
background: var(--rx-color-primary-light);
}
.rx-menu .sub-menu {
position: absolute;
top: calc(100% + 0.5rem);
left: 0;
z-index: var(--rx-z-dropdown);
min-width: 220px;
margin: 0;
padding: var(--rx-space-2);
list-style: none;
visibility: hidden;
opacity: 0;
transform: translateY(8px);
background: var(--rx-color-surface);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-lg);
box-shadow: var(--rx-shadow-lg);
transition:
opacity var(--rx-transition-fast),
transform var(--rx-transition-fast),
visibility var(--rx-transition-fast);
}
.rx-menu li:hover > .sub-menu,
.rx-menu li:focus-within > .sub-menu {
visibility: visible;
opacity: 1;
transform: translateY(0);
}
.rx-menu .sub-menu a {
width: 100%;
justify-content: flex-start;
}
.rx-mobile-menu-toggle {
display: none;
padding: 0.65rem 0.85rem;
color: var(--rx-color-heading);
background: var(--rx-color-bg-soft);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-md);
}
/* =========================================================
08. HERO / PAGE HEADER
========================================================= */
.rx-hero {
padding: var(--rx-space-16) 0;
background:
radial-gradient(circle at top left, rgba(11, 99, 206, 0.12), transparent 35%),
linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
border-bottom: 1px solid var(--rx-color-border);
}
.rx-hero-title {
max-width: 900px;
margin-bottom: var(--rx-space-4);
}
.rx-hero-text {
max-width: 760px;
font-size: var(--rx-text-lg);
color: var(--rx-color-text-soft);
}
.rx-page-header {
padding: var(--rx-space-10) 0;
background: var(--rx-color-bg-soft);
border-bottom: 1px solid var(--rx-color-border);
}
.rx-page-title {
margin-bottom: var(--rx-space-3);
}
.rx-page-description {
max-width: 760px;
margin-bottom: 0;
color: var(--rx-color-text-soft);
}
/* =========================================================
09. BREADCRUMBS
========================================================= */
.rx-breadcrumbs {
margin-bottom: var(--rx-space-4);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
}
.rx-breadcrumbs a {
color: var(--rx-color-text-soft);
text-decoration: none;
}
.rx-breadcrumbs a:hover {
color: var(--rx-color-primary);
}
.rx-breadcrumb-separator {
margin-inline: 0.35rem;
color: var(--rx-color-text-muted);
}
/* =========================================================
10. ARTICLE / SINGLE POST
========================================================= */
.rx-article {
background: var(--rx-color-surface);
}
.rx-article-header {
margin-bottom: var(--rx-space-8);
}
.rx-article-title {
margin-bottom: var(--rx-space-4);
}
.rx-article-meta {
display: flex;
flex-wrap: wrap;
gap: var(--rx-space-2) var(--rx-space-4);
margin-bottom: var(--rx-space-5);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
}
.rx-article-meta a {
color: inherit;
text-decoration: none;
}
.rx-article-meta a:hover {
color: var(--rx-color-primary);
}
.rx-featured-image {
margin-bottom: var(--rx-space-8);
overflow: hidden;
border-radius: var(--rx-radius-xl);
box-shadow: var(--rx-shadow-md);
}
.rx-featured-image img {
width: 100%;
object-fit: cover;
}
.rx-entry-content {
font-size: var(--rx-text-md);
line-height: var(--rx-leading-relaxed);
}
.rx-entry-content > *:first-child {
margin-top: 0;
}
.rx-entry-content > *:last-child {
margin-bottom: 0;
}
.rx-entry-content h2 {
padding-bottom: var(--rx-space-2);
border-bottom: 1px solid var(--rx-color-border);
}
.rx-entry-content img {
border-radius: var(--rx-radius-lg);
}
.rx-entry-content figure {
margin: var(--rx-space-8) 0;
}
.rx-entry-content figcaption {
margin-top: var(--rx-space-2);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
text-align: center;
}
.rx-entry-content a {
font-weight: 600;
}
.rx-entry-content ul,
.rx-entry-content ol {
margin-bottom: var(--rx-space-5);
}
.rx-entry-content li + li {
margin-top: 0.4rem;
}
.rx-entry-footer {
margin-top: var(--rx-space-10);
padding-top: var(--rx-space-6);
border-top: 1px solid var(--rx-color-border);
}
/* =========================================================
11. MEDICAL CONTENT BOXES
========================================================= */
.rx-medical-note,
.rx-medical-warning,
.rx-medical-danger,
.rx-medical-success,
.rx-medical-info {
margin: var(--rx-space-6) 0;
padding: var(--rx-space-5);
border-radius: var(--rx-radius-lg);
border: 1px solid transparent;
}
.rx-medical-note {
color: #1e3a8a;
background: #eff6ff;
border-color: #bfdbfe;
}
.rx-medical-info {
color: #075985;
background: #e0f2fe;
border-color: #bae6fd;
}
.rx-medical-warning {
color: #92400e;
background: #fffbeb;
border-color: #fde68a;
}
.rx-medical-danger {
color: #991b1b;
background: #fef2f2;
border-color: #fecaca;
}
.rx-medical-success {
color: #166534;
background: #f0fdf4;
border-color: #bbf7d0;
}
.rx-medical-box-title {
display: block;
margin-bottom: var(--rx-space-2);
font-weight: 800;
}
/* =========================================================
12. POST CARDS
========================================================= */
.rx-card {
overflow: hidden;
background: var(--rx-color-surface);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-xl);
box-shadow: var(--rx-shadow-sm);
transition:
transform var(--rx-transition),
box-shadow var(--rx-transition),
border-color var(--rx-transition);
}
.rx-card:hover {
transform: translateY(-3px);
border-color: rgba(11, 99, 206, 0.35);
box-shadow: var(--rx-shadow-md);
}
.rx-card-image {
aspect-ratio: 16 / 9;
overflow: hidden;
background: var(--rx-color-bg-muted);
}
.rx-card-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform var(--rx-transition-slow);
}
.rx-card:hover .rx-card-image img {
transform: scale(1.04);
}
.rx-card-body {
padding: var(--rx-space-5);
}
.rx-card-title {
margin-bottom: var(--rx-space-2);
font-size: var(--rx-text-xl);
}
.rx-card-title a {
color: var(--rx-color-heading);
text-decoration: none;
}
.rx-card-title a:hover {
color: var(--rx-color-primary);
}
.rx-card-excerpt {
margin-bottom: var(--rx-space-4);
color: var(--rx-color-text-soft);
}
.rx-card-meta {
display: flex;
flex-wrap: wrap;
gap: var(--rx-space-2);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
}
/* =========================================================
13. CATEGORY / TAG BADGES
========================================================= */
.rx-badge,
.rx-category-badge,
.rx-tag {
display: inline-flex;
align-items: center;
gap: 0.35rem;
padding: 0.3rem 0.65rem;
font-size: var(--rx-text-xs);
font-weight: 800;
line-height: 1;
color: var(--rx-color-primary);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 0.04em;
background: var(--rx-color-primary-light);
border-radius: var(--rx-radius-full);
}
.rx-badge:hover,
.rx-category-badge:hover,
.rx-tag:hover {
color: #ffffff;
background: var(--rx-color-primary);
}
.rx-tag-list {
display: flex;
flex-wrap: wrap;
gap: var(--rx-space-2);
}
/* =========================================================
14. BUTTONS
========================================================= */
.rx-btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.45rem;
min-height: 42px;
padding: 0.65rem 1rem;
font-weight: 800;
line-height: 1;
color: #ffffff;
text-decoration: none;
background: var(--rx-color-primary);
border: 1px solid var(--rx-color-primary);
border-radius: var(--rx-radius-md);
box-shadow: var(--rx-shadow-sm);
transition:
transform var(--rx-transition-fast),
background var(--rx-transition-fast),
border-color var(--rx-transition-fast),
box-shadow var(--rx-transition-fast);
}
.rx-btn:hover,
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover {
color: #ffffff;
background: var(--rx-color-primary-dark);
border-color: var(--rx-color-primary-dark);
transform: translateY(-1px);
box-shadow: var(--rx-shadow-md);
}
.rx-btn-secondary {
color: var(--rx-color-primary);
background: var(--rx-color-primary-light);
border-color: var(--rx-color-primary-light);
}
.rx-btn-secondary:hover {
color: #ffffff;
background: var(--rx-color-primary);
border-color: var(--rx-color-primary);
}
.rx-btn-outline {
color: var(--rx-color-primary);
background: transparent;
border-color: var(--rx-color-primary);
}
.rx-btn-outline:hover {
color: #ffffff;
background: var(--rx-color-primary);
}
.rx-btn-small {
min-height: 34px;
padding: 0.45rem 0.75rem;
font-size: var(--rx-text-sm);
}
.rx-btn-large {
min-height: 50px;
padding: 0.85rem 1.25rem;
font-size: var(--rx-text-lg);
}
/* =========================================================
15. FORMS
========================================================= */
.rx-form-group {
margin-bottom: var(--rx-space-5);
}
label {
display: inline-block;
margin-bottom: var(--rx-space-2);
font-weight: 700;
color: var(--rx-color-heading);
}
input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="date"],
select,
textarea {
width: 100%;
min-height: 44px;
padding: 0.65rem 0.85rem;
color: var(--rx-color-text);
background: var(--rx-color-bg);
border: 1px solid var(--rx-color-border-dark);
border-radius: var(--rx-radius-md);
transition:
border-color var(--rx-transition-fast),
box-shadow var(--rx-transition-fast);
}
textarea {
min-height: 140px;
resize: vertical;
}
input:focus,
select:focus,
textarea:focus {
border-color: var(--rx-color-primary);
outline: none;
box-shadow: 0 0 0 4px rgba(11, 99, 206, 0.12);
}
input::placeholder,
textarea::placeholder {
color: var(--rx-color-text-muted);
}
.rx-search-form {
display: flex;
gap: var(--rx-space-2);
}
.rx-search-form input[type="search"] {
flex: 1;
}
/* =========================================================
16. TABLES
========================================================= */
table {
width: 100%;
margin-bottom: var(--rx-space-6);
border-collapse: collapse;
font-size: var(--rx-text-sm);
background: var(--rx-color-surface);
}
th,
td {
padding: 0.85rem;
text-align: left;
vertical-align: top;
border: 1px solid var(--rx-color-border);
}
th {
font-weight: 800;
color: var(--rx-color-heading);
background: var(--rx-color-bg-soft);
}
tr:nth-child(even) td {
background: #fcfcfd;
}
.rx-table-responsive {
width: 100%;
overflow-x: auto;
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-lg);
}
.rx-table-responsive table {
margin-bottom: 0;
}
/* =========================================================
17. SIDEBAR / WIDGETS
========================================================= */
.rx-sidebar {
display: grid;
gap: var(--rx-space-6);
}
.rx-widget {
padding: var(--rx-space-5);
background: var(--rx-color-surface);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-xl);
box-shadow: var(--rx-shadow-sm);
}
.rx-widget-title {
margin-bottom: var(--rx-space-4);
padding-bottom: var(--rx-space-2);
font-size: var(--rx-text-lg);
border-bottom: 1px solid var(--rx-color-border);
}
.rx-widget ul {
margin: 0;
padding: 0;
list-style: none;
}
.rx-widget li + li {
margin-top: var(--rx-space-2);
padding-top: var(--rx-space-2);
border-top: 1px solid var(--rx-color-border);
}
.rx-widget a {
color: var(--rx-color-text);
text-decoration: none;
}
.rx-widget a:hover {
color: var(--rx-color-primary);
}
/* =========================================================
18. PAGINATION
========================================================= */
.rx-pagination,
.nav-links {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--rx-space-2);
margin-top: var(--rx-space-10);
}
.rx-pagination a,
.rx-pagination span,
.nav-links a,
.nav-links span {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 42px;
min-height: 42px;
padding: 0.55rem 0.8rem;
font-weight: 800;
color: var(--rx-color-text);
text-decoration: none;
background: var(--rx-color-surface);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-md);
}
.rx-pagination .current,
.nav-links .current {
color: #ffffff;
background: var(--rx-color-primary);
border-color: var(--rx-color-primary);
}
.rx-pagination a:hover,
.nav-links a:hover {
color: var(--rx-color-primary);
border-color: var(--rx-color-primary);
}
/* =========================================================
19. COMMENTS
========================================================= */
.rx-comments {
margin-top: var(--rx-space-12);
}
.comment-list {
margin: 0;
padding: 0;
list-style: none;
}
.comment {
margin-bottom: var(--rx-space-5);
padding: var(--rx-space-5);
background: var(--rx-color-bg-soft);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-lg);
}
.comment-author {
font-weight: 800;
color: var(--rx-color-heading);
}
.comment-metadata {
margin-bottom: var(--rx-space-3);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
}
.comment-content p:last-child {
margin-bottom: 0;
}
.comment-reply-link {
display: inline-flex;
margin-top: var(--rx-space-3);
font-size: var(--rx-text-sm);
font-weight: 800;
text-decoration: none;
}
/* =========================================================
20. AUTHOR BOX
========================================================= */
.rx-author-box {
display: flex;
gap: var(--rx-space-5);
margin-top: var(--rx-space-10);
padding: var(--rx-space-6);
background: var(--rx-color-bg-soft);
border: 1px solid var(--rx-color-border);
border-radius: var(--rx-radius-xl);
}
.rx-author-avatar {
flex: 0 0 84px;
}
.rx-author-avatar img {
border-radius: var(--rx-radius-full);
}
.rx-author-name {
margin-bottom: var(--rx-space-2);
font-size: var(--rx-text-xl);
}
.rx-author-bio {
color: var(--rx-color-text-soft);
}
/* =========================================================
21. RELATED POSTS
========================================================= */
.rx-related-posts {
margin-top: var(--rx-space-12);
}
.rx-related-title {
margin-bottom: var(--rx-space-6);
}
.rx-related-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: var(--rx-space-6);
}
/* =========================================================
22. FOOTER
========================================================= */
.rx-site-footer {
margin-top: auto;
color: #d1d5db;
background: #0f172a;
}
.rx-footer-top {
padding: var(--rx-space-12) 0;
}
.rx-footer-grid {
display: grid;
grid-template-columns: 2fr repeat(3, 1fr);
gap: var(--rx-space-8);
}
.rx-footer-widget-title {
margin-bottom: var(--rx-space-4);
color: #ffffff;
font-size: var(--rx-text-lg);
}
.rx-site-footer a {
color: #dbeafe;
text-decoration: none;
}
.rx-site-footer a:hover {
color: #ffffff;
}
.rx-footer-bottom {
padding: var(--rx-space-5) 0;
color: #9ca3af;
border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.rx-footer-bottom-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--rx-space-4);
}
/* =========================================================
23. WORDPRESS DEFAULT CLASSES
========================================================= */
.alignleft {
float: left;
margin: 0 var(--rx-space-5) var(--rx-space-4) 0;
}
.alignright {
float: right;
margin: 0 0 var(--rx-space-4) var(--rx-space-5);
}
.aligncenter {
display: block;
margin-inline: auto;
}
.wp-caption {
max-width: 100%;
}
.wp-caption-text,
.gallery-caption {
margin-top: var(--rx-space-2);
font-size: var(--rx-text-sm);
color: var(--rx-color-text-muted);
text-align: center;
}
.sticky {
border-color: var(--rx-color-primary);
}
.bypostauthor {
border-left: 4px solid var(--rx-color-primary);
}
/* =========================================================
24. UTILITIES
========================================================= */
.rx-text-center {
text-align: center;
}
.rx-text-left {
text-align: left;
}
.rx-text-right {
text-align: right;
}
.rx-hidden {
display: none !important;
}
.rx-visible {
display: block !important;
}
.rx-flex {
display: flex;
}
.rx-inline-flex {
display: inline-flex;
}
.rx-items-center {
align-items: center;
}
.rx-justify-between {
justify-content: space-between;
}
.rx-gap-2 {
gap: var(--rx-space-2);
}
.rx-gap-4 {
gap: var(--rx-space-4);
}
.rx-gap-6 {
gap: var(--rx-space-6);
}
.rx-mt-0 {
margin-top: 0;
}
.rx-mt-4 {
margin-top: var(--rx-space-4);
}
.rx-mt-6 {
margin-top: var(--rx-space-6);
}
.rx-mt-8 {
margin-top: var(--rx-space-8);
}
.rx-mb-0 {
margin-bottom: 0;
}
.rx-mb-4 {
margin-bottom: var(--rx-space-4);
}
.rx-mb-6 {
margin-bottom: var(--rx-space-6);
}
.rx-mb-8 {
margin-bottom: var(--rx-space-8);
}
.rx-rounded {
border-radius: var(--rx-radius-lg);
}
.rx-shadow {
box-shadow: var(--rx-shadow-md);
}
.rx-border {
border: 1px solid var(--rx-color-border);
}
.rx-bg-soft {
background: var(--rx-color-bg-soft);
}
.rx-text-muted {
color: var(--rx-color-text-muted);
}
.rx-text-soft {
color: var(--rx-color-text-soft);
}
/* =========================================================
25. RESPONSIVE DESIGN
========================================================= */
@media (max-width: 1024px) {
.rx-content-sidebar,
.rx-sidebar-left {
grid-template-columns: 1fr;
}
.rx-grid-4 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rx-footer-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rx-related-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 768px) {
:root {
--rx-header-height: 64px;
}
.rx-header-inner {
flex-wrap: wrap;
}
.rx-mobile-menu-toggle {
display: inline-flex;
}
.rx-primary-nav {
width: 100%;
display: none;
}
.rx-primary-nav.is-open {
display: block;
}
.rx-menu {
flex-direction: column;
align-items: stretch;
width: 100%;
padding: var(--rx-space-3) 0;
}
.rx-menu a {
width: 100%;
}
.rx-menu .sub-menu {
position: static;
visibility: visible;
opacity: 1;
transform: none;
box-shadow: none;
border: 0;
padding-left: var(--rx-space-4);
background: transparent;
}
.rx-grid-2,
.rx-grid-3,
.rx-grid-4,
.rx-related-grid {
grid-template-columns: 1fr;
}
.rx-footer-grid {
grid-template-columns: 1fr;
}
.rx-footer-bottom-inner {
flex-direction: column;
text-align: center;
}
.rx-author-box {
flex-direction: column;
text-align: center;
}
.rx-author-avatar {
margin-inline: auto;
}
.rx-search-form {
flex-direction: column;
}
}
@media (max-width: 480px) {
.rx-container,
.rx-container-narrow {
width: min(100% - 1rem, var(--rx-container));
}
h1 {
font-size: 2rem;
}
.rx-section {
padding-block: var(--rx-space-10);
}
.rx-hero {
padding-block: var(--rx-space-10);
}
.rx-card-body,
.rx-widget {
padding: var(--rx-space-4);
}
}
/* =========================================================
26. DARK MODE SUPPORT
========================================================= */
@media (prefers-color-scheme: dark) {
:root {
--rx-color-text: #e5e7eb;
--rx-color-text-soft: #cbd5e1;
--rx-color-text-muted: #94a3b8;
--rx-color-heading: #f8fafc;
--rx-color-bg: #020617;
--rx-color-bg-soft: #0f172a;
--rx-color-bg-muted: #111827;
--rx-color-surface: #0b1220;
--rx-color-border: rgba(148, 163, 184, 0.22);
--rx-color-border-dark: rgba(148, 163, 184, 0.34);
--rx-color-primary-light: rgba(11, 99, 206, 0.18);
}
.rx-site-header {
background: rgba(2, 6, 23, 0.88);
}
.rx-hero {
background:
radial-gradient(circle at top left, rgba(11, 99, 206, 0.18), transparent 35%),
linear-gradient(180deg, #020617 0%, #0f172a 100%);
}
code {
color: #fecdd3;
background: rgba(244, 63, 94, 0.12);
}
tr:nth-child(even) td {
background: rgba(255, 255, 255, 0.02);
}
}
/* Manual dark mode class for later dynamic switch */
.rx-dark {
--rx-color-text: #e5e7eb;
--rx-color-text-soft: #cbd5e1;
--rx-color-text-muted: #94a3b8;
--rx-color-heading: #f8fafc;
--rx-color-bg: #020617;
--rx-color-bg-soft: #0f172a;
--rx-color-bg-muted: #111827;
--rx-color-surface: #0b1220;
--rx-color-border: rgba(148, 163, 184, 0.22);
--rx-color-border-dark: rgba(148, 163, 184, 0.34);
--rx-color-primary-light: rgba(11, 99, 206, 0.18);
}
/* =========================================================
27. PERFORMANCE / MOTION SAFETY
========================================================= */
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.001ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
transition-duration: 0.001ms !important;
}
}
/* =========================================================
28. PRINT STYLE
========================================================= */
@media print {
*,
*::before,
*::after {
color: #000000 !important;
background: transparent !important;
box-shadow: none !important;
text-shadow: none !important;
}
body {
font-size: 12pt;
line-height: 1.5;
}
a,
a:visited {
color: #000000 !important;
text-decoration: underline;
}
.rx-site-header,
.rx-site-footer,
.rx-sidebar,
.rx-comments,
.rx-related-posts,
.rx-mobile-menu-toggle,
.rx-pagination,
.nav-links {
display: none !important;
}
.rx-container,
.rx-container-narrow,
.rx-content-sidebar {
width: 100%;
max-width: none;
display: block;
}
h1,
h2,
h3 {
page-break-after: avoid;
}
img {
max-width: 100% !important;
page-break-inside: avoid;
}
table {
page-break-inside: avoid;
}
}
Important: keep this file for global static styling. Later create dynamic CSS separately, for example:
assets/dynamic/dynamic-css/rx-theme-vars.php
assets/dynamic/dynamic-css/rx-customizer.css
assets/dynamic/dynamic-css/rx-user-mode.css
Static CSS = fixed design foundation.
Dynamic CSS = colors, fonts, layout options, dark mode, category colors, admin/customizer output.