- Fix container width not applying: css-global-responsive.css now uses CSS variable --roi-container-width instead of hardcoded values - Add 8 Rail format options: slim-small (160x300), slim-medium (160x400), slim-large (160x500), skyscraper (160x600), slim-xlarge (160x700), wide-skyscraper (160x800), half-page (300x600), large-skyscraper (300x1050) - Change rail_top_offset from text input to select with preset values - Fix Rail Ads JavaScript positioning (moved after HTML, added retries) - ThemeSettingsRenderer now always outputs CSS variables for layout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
335 lines
5.2 KiB
CSS
335 lines
5.2 KiB
CSS
/**
|
|
* Responsive Design Styles
|
|
*
|
|
* Media queries and responsive adjustments
|
|
* @package ROI_Theme
|
|
* @since 1.0.0
|
|
*/
|
|
|
|
/* Extra small devices (phones, less than 576px) */
|
|
@media (max-width: 575.98px) {
|
|
:root {
|
|
--bs-gutter-x: 1rem;
|
|
}
|
|
|
|
body {
|
|
font-size: 14px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 24px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 20px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 18px;
|
|
}
|
|
|
|
.container-fluid {
|
|
padding: 0 10px;
|
|
}
|
|
|
|
/* Navigation adjustments */
|
|
.navbar {
|
|
padding: 0.5rem 0;
|
|
}
|
|
|
|
.navbar-brand {
|
|
font-size: 18px;
|
|
}
|
|
|
|
/* Content area */
|
|
main {
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
/* Sidebar */
|
|
.sidebar {
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
/* Tables become scrollable */
|
|
table {
|
|
font-size: 12px;
|
|
margin-bottom: 1rem;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.table-responsive {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
/* Buttons */
|
|
.btn {
|
|
padding: 0.375rem 0.75rem;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.btn-lg {
|
|
padding: 0.5rem 1rem;
|
|
font-size: 16px;
|
|
}
|
|
|
|
/* Cards */
|
|
.card {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
/* Forms */
|
|
.form-group {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.form-control {
|
|
padding: 0.375rem 0.75rem;
|
|
font-size: 16px;
|
|
}
|
|
|
|
/* Modals */
|
|
.modal-dialog {
|
|
margin: 0.5rem;
|
|
}
|
|
|
|
.modal-content {
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Images */
|
|
img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
/* Lists */
|
|
ul,
|
|
ol {
|
|
padding-left: 1.5rem;
|
|
}
|
|
|
|
/* Spacing utilities */
|
|
.mt-1,
|
|
.my-1 {
|
|
margin-top: 0.25rem !important;
|
|
}
|
|
|
|
.mb-1,
|
|
.my-1 {
|
|
margin-bottom: 0.25rem !important;
|
|
}
|
|
|
|
.p-1 {
|
|
padding: 0.25rem !important;
|
|
}
|
|
}
|
|
|
|
/* Small devices (landscape phones, 576px and up) */
|
|
@media (min-width: 576px) {
|
|
body {
|
|
font-size: 14px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 28px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 22px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 18px;
|
|
}
|
|
}
|
|
|
|
/* Medium devices (tablets, 768px and up) */
|
|
@media (min-width: 768px) {
|
|
body {
|
|
font-size: 15px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 32px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 26px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 20px;
|
|
}
|
|
|
|
/* Two column layout for medium screens */
|
|
.row-md-2 {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
/* Navigation */
|
|
.navbar {
|
|
padding: 1rem 0;
|
|
}
|
|
|
|
/* Sidebar */
|
|
.main-content {
|
|
display: grid;
|
|
grid-template-columns: 1fr 300px;
|
|
gap: 2rem;
|
|
}
|
|
|
|
.main-content.no-sidebar {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Large devices (desktops, 992px and up) */
|
|
@media (min-width: 992px) {
|
|
body {
|
|
font-size: 16px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 36px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 28px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 22px;
|
|
}
|
|
|
|
/* Three column layout for large screens */
|
|
.row-lg-3 {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 2rem;
|
|
}
|
|
|
|
/* Main content with sidebars */
|
|
.main-content {
|
|
display: grid;
|
|
grid-template-columns: 1fr 300px;
|
|
gap: 2rem;
|
|
}
|
|
|
|
.main-content.with-left-sidebar {
|
|
grid-template-columns: 250px 1fr 300px;
|
|
}
|
|
|
|
.content-wrapper {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
}
|
|
|
|
/* Extra large devices (large desktops, 1200px and up) */
|
|
@media (min-width: 1200px) {
|
|
body {
|
|
font-size: 16px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 40px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 32px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 24px;
|
|
}
|
|
|
|
/* Container width uses CSS variable from Theme Settings */
|
|
.container,
|
|
.container-lg,
|
|
.container-xl,
|
|
.container-xxl {
|
|
max-width: var(--roi-container-width, 1320px);
|
|
}
|
|
}
|
|
|
|
/* Landscape orientation adjustments */
|
|
@media (orientation: landscape) and (max-height: 500px) {
|
|
header {
|
|
padding: 0.5rem 0;
|
|
}
|
|
|
|
main {
|
|
padding: 0.5rem 0;
|
|
}
|
|
|
|
.btn {
|
|
padding: 0.25rem 0.5rem;
|
|
font-size: 12px;
|
|
}
|
|
}
|
|
|
|
/* High DPI displays */
|
|
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
|
|
body {
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
}
|
|
|
|
/* Touch devices */
|
|
@media (hover: none) and (pointer: coarse) {
|
|
button,
|
|
.btn,
|
|
a {
|
|
min-height: 44px;
|
|
min-width: 44px;
|
|
}
|
|
|
|
input[type="checkbox"],
|
|
input[type="radio"] {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
}
|
|
|
|
/* Reduced motion preferences */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.01ms !important;
|
|
scroll-behavior: auto !important;
|
|
}
|
|
}
|
|
|
|
/* Dark mode support */
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
color-scheme: dark;
|
|
}
|
|
|
|
body {
|
|
background-color: #1a1a1a;
|
|
color: #e0e0e0;
|
|
}
|
|
|
|
a {
|
|
color: #64b5f6;
|
|
}
|
|
|
|
a:visited {
|
|
color: #ba68c8;
|
|
}
|
|
|
|
code,
|
|
pre {
|
|
background-color: #2d2d2d;
|
|
color: #e0e0e0;
|
|
}
|
|
}
|