diff --git a/about/grid-showcase.page.tsx b/about/grid-showcase.page.tsx
new file mode 100644
index 0000000000..b95396d8f2
--- /dev/null
+++ b/about/grid-showcase.page.tsx
@@ -0,0 +1,406 @@
+import { RFC_2822 } from "moment";
+import * as React from "react";
+import { PageGrid, PageGridRow, PageGridCol } from "shared/components/PageGrid/page-grid";
+
+export const frontmatter = {
+ seo: {
+ title: 'PageGrid Showcase',
+ description: "A comprehensive showcase and documentation for the PageGrid component system.",
+ }
+};
+
+// Demo component with bordered divs to visualize grid
+const GridDemo = ({ title, description, children, code }: {
+ title: string;
+ description?: string;
+ children: React.ReactNode;
+ code?: string;
+}) => (
+
+
{title}
+ {description &&
{description}
}
+ {code && (
+
+ )}
+
+ {children}
+
+
+);
+
+// Bordered column component for visualization
+const BorderedCol = ({ children, ...props }: { children: React.ReactNode } & any) => (
+
+ {children}
+
+);
+
+export default function GridShowcase() {
+ return (
+
+
+
+
+
+
PageGrid Component Showcase
+
+ A comprehensive guide to using the PageGrid responsive grid system.
+ All examples below use bordered divs to visualize the grid structure.
+
+
+
+
+
+ {/* Basic Grid Structure */}
+
+
+
+
+ Column 1
+ Column 2
+
+`}
+ >
+
+
+ span={6}
+ span={6}
+
+
+
+
+
+
+ {/* Equal Columns */}
+
+
+
+
+ Column 1
+ Column 2
+ Column 3
+
+`}
+ >
+
+
+ span={4}
+ span={4}
+ span={4}
+
+
+
+
+
+
+ {/* Auto and Fill */}
+
+
+
+
+ Auto
+ Fill
+ Auto
+
+`}
+ >
+
+
+ span="auto"
+ span="fill"
+ span="auto"
+
+
+
+
+
+
+ {/* Responsive Layout */}
+
+
+
+
+
+ Responsive Column
+
+
+`}
+ >
+
+
+
+ base: 4, md: 6, lg: 4
+
+
+ base: 4, md: 6, lg: 4
+
+
+ base: 4, md: 8, lg: 4
+
+
+
+
+
+
+
+ {/* Offsets */}
+
+
+
+
+
+ Centered (8 columns with 2 offset)
+
+
+`}
+ >
+
+
+
+ span={8}, offset: lg: 2
+
+
+
+
+
+
+
+ {/* Responsive Offsets */}
+
+
+
+
+
+ Responsive Offset
+
+
+`}
+ >
+
+
+
+ span={6}, offset: base=0, md=3
+
+
+
+
+
+
+
+ {/* Complex Layout */}
+
+
+
+
+
+ Sidebar
+
+
+ Main Content
+
+
+`}
+ >
+
+
+
+ Sidebar
(base: 4, lg: 4)
+
+
+ Main Content
(base: 4, lg: 8)
+
+
+
+
+
+
+
+ {/* Breakpoints Documentation */}
+
+
+
+
Breakpoints
+
+ The PageGrid system uses the following breakpoints:
+
+
+ {/* Header */}
+
+
Breakpoint
+
Min Width
+
Columns
+
Container Padding
+
+
+ {/* Rows */}
+
+
base
+
0px
+
4 columns
+
16px
+
+
+
sm
+
576px
+
8 columns
+
24px
+
+
+
md
+
576px
+
8 columns
+
24px
+
+
+
lg
+
992px
+
12 columns
+
32px
+
+
+
xl
+
1280px
+
12 columns
+
112px (max-width: 1440px)
+
+
+
+
+
+
+ {/* Usage Documentation */}
+
+
+
+
Usage
+
+
Import
+
+
{`import { PageGrid, PageGridRow, PageGridCol } from "shared/components/PageGrid/page-grid";`}
+
+
+
Basic Example
+
+
{`
+
+
+ Column 1
+
+
+ Column 2
+
+
+`}
+
+
+
Props
+
+
PageGrid.Col Props
+
+ span - Column span (number, "auto", "fill", or responsive object)
+ offset - Column offset (number or responsive object)
+ className - Additional CSS classes
+ - All standard HTML div attributes
+
+
+
+
Span Values
+
+ - Number (e.g., 1-12): Fixed column width
+ - "auto": Column sizes to its content
+ - "fill": Column fills remaining space
+ - Responsive Object: Different spans for different breakpoints
+
+
+
Best Practices
+
+ - Always wrap columns in a
PageGrid.Row
+ - Use responsive values for mobile-first design
+ - Total column spans in a row should not exceed the grid columns (4 for base, 8 for sm/md, 12 for lg/xl)
+ - Use offsets for spacing and centering content
+ - Test layouts at all breakpoints
+
+
+
+
+
+ {/* Visual Grid Demonstration */}
+
+
+
+
Visual Grid Demonstration
+
+ Below is a visual representation of the 12-column grid system at the lg breakpoint:
+
+
+
+ {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((num) => (
+
+ {num}
+
+ ))}
+
+
+
+
+
+
+
+ );
+}
diff --git a/shared/components/PageGrid/_page-grid.scss b/shared/components/PageGrid/_page-grid.scss
index 6c387781ee..8d614aae68 100644
--- a/shared/components/PageGrid/_page-grid.scss
+++ b/shared/components/PageGrid/_page-grid.scss
@@ -5,12 +5,24 @@
$xrpl-grid-gutter: 8px;
+// Custom mixin that accounts for gap spacing in width calculations
+@mixin xrpl-make-col($size, $columns) {
+ flex: 0 0 auto;
+ // Calculate width accounting for gap spacing
+ // Formula: width per column * span + gap spacing between spanned columns
+ // Total gaps in grid: ($columns - 1)
+ // Total available width: 100% - (gap * total gaps)
+ // Width per column: available width / columns
+ // For span of $size: (width per column * size) + (gap * (size - 1))
+ width: calc(((100% - (#{$xrpl-grid-gutter} * (#{$columns} - 1))) / #{$columns}) * #{$size} + (#{$xrpl-grid-gutter} * (#{$size} - 1)));
+}
+
@mixin xrpl-grid-generate-cols($columns, $suffix: null) {
@for $i from 1 through $columns {
$selector: if($suffix, ".xrpl-grid__col-#{$suffix}-#{$i}", ".xrpl-grid__col-#{$i}");
#{$selector} {
- @include make-col($i, $columns);
+ @include xrpl-make-col($i, $columns);
}
}
}
@@ -41,6 +53,43 @@ $xrpl-grid-gutter: 8px;
}
}
+// Mixin to generate responsive base column classes (1-12) with built-in breakpoint behavior
+@mixin xrpl-grid-generate-responsive-base-cols() {
+ @for $i from 1 through 12 {
+ .xrpl-grid__col-#{$i} {
+ // Base breakpoint (4 columns): if span > 4, clamp to 4 (which gives 4/4 = 100%)
+ @if $i > 4 {
+ @include xrpl-make-col(4, 4);
+ } @else {
+ @include xrpl-make-col($i, 4);
+ }
+
+ // SM breakpoint (8 columns): if span > 8, clamp to 8 (which gives 8/8 = 100%)
+ @include media-breakpoint-up(sm) {
+ @if $i > 8 {
+ @include xrpl-make-col(8, 8);
+ } @else {
+ @include xrpl-make-col($i, 8);
+ }
+ }
+
+ // MD breakpoint (8 columns): if span > 8, clamp to 8 (which gives 8/8 = 100%)
+ @include media-breakpoint-up(md) {
+ @if $i > 8 {
+ @include xrpl-make-col(8, 8);
+ } @else {
+ @include xrpl-make-col($i, 8);
+ }
+ }
+
+ // LG+ breakpoints (12 columns): always calculate based on 12 cols
+ @include media-breakpoint-up(lg) {
+ @include xrpl-make-col($i, 12);
+ }
+ }
+ }
+}
+
.xrpl-grid {
&__container {
width: 100%;
@@ -68,17 +117,26 @@ $xrpl-grid-gutter: 8px;
}
&__row {
- @include make-row($xrpl-grid-gutter);
+ display: flex;
+ flex-wrap: wrap;
+ // Use gap for spacing - works with our calc-based column widths
+ gap: $xrpl-grid-gutter;
}
&__col {
- @include make-col-ready();
+ box-sizing: border-box;
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ // No padding/margin for gutters - spacing handled by gap on row
+ // Column widths are calculated to account for gap spacing
+ // Padding can be added via style prop without affecting grid spacing
}
}
-// Base (0 - 575px) — 4-column grid
+// Base (0 - 575px) — 4-column grid with responsive behavior built-in
@include xrpl-grid-generate-fill();
-@include xrpl-grid-generate-cols(4);
+@include xrpl-grid-generate-responsive-base-cols();
@include xrpl-grid-generate-auto();
@include xrpl-grid-generate-offsets(4);
diff --git a/shared/components/PageGrid/page-grid.tsx b/shared/components/PageGrid/page-grid.tsx
index 97565b11a8..2af68eac06 100644
--- a/shared/components/PageGrid/page-grid.tsx
+++ b/shared/components/PageGrid/page-grid.tsx
@@ -99,6 +99,10 @@ const PageGridCol = React.forwardRef((props, r
if (baseSpan) {
spanClasses.push(classForSpan(null, baseSpan));
+ } else {
+ // If no base span is provided, default to full width (4 columns for base breakpoint)
+ // This ensures columns are full width on mobile when only larger breakpoints are specified
+ spanClasses.push(classForSpan(null, 4));
}
// Handles sm, md, lg, xl breakpoints (with prefix)
diff --git a/static/css/devportal2024-v1.css b/static/css/devportal2024-v1.css
index a8c5235107..7e0f23bddc 100644
--- a/static/css/devportal2024-v1.css
+++ b/static/css/devportal2024-v1.css
@@ -13709,21 +13709,15 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
}
}
.xrpl-grid__row {
- --bs-gutter-x: 8px;
- --bs-gutter-y: 0;
display: flex;
flex-wrap: wrap;
- margin-top: calc(-1 * var(--bs-gutter-y));
- margin-right: calc(-0.5 * var(--bs-gutter-x));
- margin-left: calc(-0.5 * var(--bs-gutter-x));
+ gap: 8px;
}
.xrpl-grid__col {
+ box-sizing: border-box;
flex-shrink: 0;
width: 100%;
max-width: 100%;
- padding-right: calc(var(--bs-gutter-x) * 0.5);
- padding-left: calc(var(--bs-gutter-x) * 0.5);
- margin-top: var(--bs-gutter-y);
}
.xrpl-grid__col {
@@ -13732,22 +13726,278 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
.xrpl-grid__col-1 {
flex: 0 0 auto;
- width: 25%;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 1 + 8px * (1 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-1 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 1 + 8px * (1 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-1 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 1 + 8px * (1 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-1 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 1 + 8px * (1 - 1));
+ }
}
.xrpl-grid__col-2 {
flex: 0 0 auto;
- width: 50%;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 2 + 8px * (2 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-2 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 2 + 8px * (2 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-2 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 2 + 8px * (2 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-2 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 2 + 8px * (2 - 1));
+ }
}
.xrpl-grid__col-3 {
flex: 0 0 auto;
- width: 75%;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 3 + 8px * (3 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-3 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 3 + 8px * (3 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-3 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 3 + 8px * (3 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-3 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 3 + 8px * (3 - 1));
+ }
}
.xrpl-grid__col-4 {
flex: 0 0 auto;
- width: 100%;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-4 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 4 + 8px * (4 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-4 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 4 + 8px * (4 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-4 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 4 + 8px * (4 - 1));
+ }
+}
+
+.xrpl-grid__col-5 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-5 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 5 + 8px * (5 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-5 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 5 + 8px * (5 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-5 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 5 + 8px * (5 - 1));
+ }
+}
+
+.xrpl-grid__col-6 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-6 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 6 + 8px * (6 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-6 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 6 + 8px * (6 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-6 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 6 + 8px * (6 - 1));
+ }
+}
+
+.xrpl-grid__col-7 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-7 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 7 + 8px * (7 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-7 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 7 + 8px * (7 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-7 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 7 + 8px * (7 - 1));
+ }
+}
+
+.xrpl-grid__col-8 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-8 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-8 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-8 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 8 + 8px * (8 - 1));
+ }
+}
+
+.xrpl-grid__col-9 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-9 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-9 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-9 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 9 + 8px * (9 - 1));
+ }
+}
+
+.xrpl-grid__col-10 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-10 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-10 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-10 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 10 + 8px * (10 - 1));
+ }
+}
+
+.xrpl-grid__col-11 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-11 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-11 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-11 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 11 + 8px * (11 - 1));
+ }
+}
+
+.xrpl-grid__col-12 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (4 - 1)) / 4 * 4 + 8px * (4 - 1));
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-12 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 576px) {
+ .xrpl-grid__col-12 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
+ }
+}
+@media (min-width: 992px) {
+ .xrpl-grid__col-12 {
+ flex: 0 0 auto;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 12 + 8px * (12 - 1));
+ }
}
.xrpl-grid__col-auto {
@@ -13777,35 +14027,35 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
}
.xrpl-grid__col-sm-1 {
flex: 0 0 auto;
- width: 12.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 1 + 8px * (1 - 1));
}
.xrpl-grid__col-sm-2 {
flex: 0 0 auto;
- width: 25%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 2 + 8px * (2 - 1));
}
.xrpl-grid__col-sm-3 {
flex: 0 0 auto;
- width: 37.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 3 + 8px * (3 - 1));
}
.xrpl-grid__col-sm-4 {
flex: 0 0 auto;
- width: 50%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 4 + 8px * (4 - 1));
}
.xrpl-grid__col-sm-5 {
flex: 0 0 auto;
- width: 62.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 5 + 8px * (5 - 1));
}
.xrpl-grid__col-sm-6 {
flex: 0 0 auto;
- width: 75%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 6 + 8px * (6 - 1));
}
.xrpl-grid__col-sm-7 {
flex: 0 0 auto;
- width: 87.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 7 + 8px * (7 - 1));
}
.xrpl-grid__col-sm-8 {
flex: 0 0 auto;
- width: 100%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
}
.xrpl-grid__col-sm-auto {
flex: 0 0 auto;
@@ -13842,35 +14092,35 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
}
.xrpl-grid__col-md-1 {
flex: 0 0 auto;
- width: 12.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 1 + 8px * (1 - 1));
}
.xrpl-grid__col-md-2 {
flex: 0 0 auto;
- width: 25%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 2 + 8px * (2 - 1));
}
.xrpl-grid__col-md-3 {
flex: 0 0 auto;
- width: 37.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 3 + 8px * (3 - 1));
}
.xrpl-grid__col-md-4 {
flex: 0 0 auto;
- width: 50%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 4 + 8px * (4 - 1));
}
.xrpl-grid__col-md-5 {
flex: 0 0 auto;
- width: 62.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 5 + 8px * (5 - 1));
}
.xrpl-grid__col-md-6 {
flex: 0 0 auto;
- width: 75%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 6 + 8px * (6 - 1));
}
.xrpl-grid__col-md-7 {
flex: 0 0 auto;
- width: 87.5%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 7 + 8px * (7 - 1));
}
.xrpl-grid__col-md-8 {
flex: 0 0 auto;
- width: 100%;
+ width: calc((100% - 8px * (8 - 1)) / 8 * 8 + 8px * (8 - 1));
}
.xrpl-grid__col-md-auto {
flex: 0 0 auto;
@@ -13907,51 +14157,51 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
}
.xrpl-grid__col-lg-1 {
flex: 0 0 auto;
- width: 8.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 1 + 8px * (1 - 1));
}
.xrpl-grid__col-lg-2 {
flex: 0 0 auto;
- width: 16.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 2 + 8px * (2 - 1));
}
.xrpl-grid__col-lg-3 {
flex: 0 0 auto;
- width: 25%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 3 + 8px * (3 - 1));
}
.xrpl-grid__col-lg-4 {
flex: 0 0 auto;
- width: 33.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 4 + 8px * (4 - 1));
}
.xrpl-grid__col-lg-5 {
flex: 0 0 auto;
- width: 41.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 5 + 8px * (5 - 1));
}
.xrpl-grid__col-lg-6 {
flex: 0 0 auto;
- width: 50%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 6 + 8px * (6 - 1));
}
.xrpl-grid__col-lg-7 {
flex: 0 0 auto;
- width: 58.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 7 + 8px * (7 - 1));
}
.xrpl-grid__col-lg-8 {
flex: 0 0 auto;
- width: 66.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 8 + 8px * (8 - 1));
}
.xrpl-grid__col-lg-9 {
flex: 0 0 auto;
- width: 75%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 9 + 8px * (9 - 1));
}
.xrpl-grid__col-lg-10 {
flex: 0 0 auto;
- width: 83.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 10 + 8px * (10 - 1));
}
.xrpl-grid__col-lg-11 {
flex: 0 0 auto;
- width: 91.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 11 + 8px * (11 - 1));
}
.xrpl-grid__col-lg-12 {
flex: 0 0 auto;
- width: 100%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 12 + 8px * (12 - 1));
}
.xrpl-grid__col-lg-auto {
flex: 0 0 auto;
@@ -14000,51 +14250,51 @@ h1:hover .hover_anchor, .h1:hover .hover_anchor, h2:hover .hover_anchor, .h2:hov
}
.xrpl-grid__col-xl-1 {
flex: 0 0 auto;
- width: 8.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 1 + 8px * (1 - 1));
}
.xrpl-grid__col-xl-2 {
flex: 0 0 auto;
- width: 16.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 2 + 8px * (2 - 1));
}
.xrpl-grid__col-xl-3 {
flex: 0 0 auto;
- width: 25%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 3 + 8px * (3 - 1));
}
.xrpl-grid__col-xl-4 {
flex: 0 0 auto;
- width: 33.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 4 + 8px * (4 - 1));
}
.xrpl-grid__col-xl-5 {
flex: 0 0 auto;
- width: 41.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 5 + 8px * (5 - 1));
}
.xrpl-grid__col-xl-6 {
flex: 0 0 auto;
- width: 50%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 6 + 8px * (6 - 1));
}
.xrpl-grid__col-xl-7 {
flex: 0 0 auto;
- width: 58.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 7 + 8px * (7 - 1));
}
.xrpl-grid__col-xl-8 {
flex: 0 0 auto;
- width: 66.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 8 + 8px * (8 - 1));
}
.xrpl-grid__col-xl-9 {
flex: 0 0 auto;
- width: 75%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 9 + 8px * (9 - 1));
}
.xrpl-grid__col-xl-10 {
flex: 0 0 auto;
- width: 83.33333333%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 10 + 8px * (10 - 1));
}
.xrpl-grid__col-xl-11 {
flex: 0 0 auto;
- width: 91.66666667%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 11 + 8px * (11 - 1));
}
.xrpl-grid__col-xl-12 {
flex: 0 0 auto;
- width: 100%;
+ width: calc((100% - 8px * (12 - 1)) / 12 * 12 + 8px * (12 - 1));
}
.xrpl-grid__col-xl-auto {
flex: 0 0 auto;