Old Windows ships three CSS utility classes that reproduce the characteristic Windows 98 beveled border appearance without any third-party library. Each class pairs multi-directional borders with anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/old-windows/llms.txt
Use this file to discover all available pages before exploring further.
inset box-shadow to simulate depth, and all three are available globally through assets/main.css. Understanding when to reach for each one is the key to keeping new UI elements visually consistent with the rest of the portfolio.
The Three Classes
.win-border-outset
Used on raised, clickable elements — buttons in their default state, desktop icons, panels, and any surface that should appear to sit above the page.
inset shadows add a second layer of depth just inside the border edges.
.win-border-inset
Used on sunken elements — text inputs, pressed/active buttons, and content areas that should appear recessed into the surface.
outset — dark edges on top and left make the element appear pushed in, while light edges on the bottom and right suggest the far wall of a recess.
.win-border-window
Used on the outer shell of Window components — the border that wraps the entire window frame including the title bar, content area, and status bar.
outset but adds padding: 2px, which creates the narrow inner margin between the outer border and the window’s interior content. This matches the authentic Win98 window frame spacing.
Usage in JSX
The Inset Box-Shadow Trick
Thebox-shadow declaration on each class does two things at once using the inset keyword:
inset 1px 1px #fff— draws a white 1 px line just inside the top and left edges of the element, adding a bright inner highlight that reinforces the raised look.inset -1px -1px var(--win-gray-dark)— draws a mid-gray 1 px line just inside the bottom and right edges, adding an inner shadow that deepens the bevel.
Overriding the Background Color
Both.win-border-outset and .win-border-window set background-color: var(--win-gray) and .win-border-inset sets background-color: #fff. If you need a different background, add a Tailwind bg-* class — Tailwind’s specificity will override the property declared in the utility class: