### Example .astro file with frontmatter and markup
Source: https://lumosframework.com/docs/project-structure
Shows the two-part structure of an .astro file: frontmatter (imports and setup) above the dashes, and markup below. The example imports layout and component files and renders a simple About page.
```astro
---
import BaseLayout from "@/layouts/BaseLayout.astro";
import Section from "@/components/Section.astro";
import Heading from "@/components/Heading.astro";
import Paragraph from "@/components/Paragraph.astro";
---
About usWe make things.
```
--------------------------------
### Select component usage examples
Source: https://lumosframework.com/docs/components/select
Demonstrates basic usage with custom options, the month variant, and a configured year range.
```astro
```
--------------------------------
### Button Theming
Source: https://lumosframework.com/docs/components/button
Example showing how a button inherits colors from the nearest theme.
```astro
```
--------------------------------
### Basic Input Usage
Source: https://lumosframework.com/docs/components/input
Examples of using the Input component with different variants and custom labels.
```astro
```
--------------------------------
### BaseLayout usage example
Source: https://lumosframework.com/docs/components/base-head
Example of passing metadata props to the BaseLayout component.
```astro
```
--------------------------------
### Basic AccordionItem Usage
Source: https://lumosframework.com/docs/components/accordion-item
An example of how to implement an AccordionItem with a specified heading and content.
```astro
Copy, images, and someone who can make decisions.
```
--------------------------------
### Basic Button Usage
Source: https://lumosframework.com/docs/components/button
Examples of primary, secondary, and link buttons using the Button component.
```astro
```
--------------------------------
### Text over media with Overlay
Source: https://lumosframework.com/docs/components/overlay
Example of using the Overlay component with a gradient variant at 70% strength to ensure text readability over an image.
```astro
Text over media
```
--------------------------------
### Basic Accordion usage
Source: https://lumosframework.com/docs/components/accordion
An example of an Accordion component with the openFirst prop enabled, containing multiple AccordionItem entries.
```astro
Usually four to six weeks.Copy, images, and someone who can make decisions.
```
--------------------------------
### Grid with xsmall={2} medium={4}
Source: https://lumosframework.com/docs/concepts/layout
Use the Grid component to lay out repeated items such as cards, logos, or team members. Set a column count per breakpoint (xsmall and medium here) and the sizes between them follow the nearest one below. The second block is the copyable one-line version of the same example.
```astro
```
```astro
```
--------------------------------
### Choice usage example
Source: https://lumosframework.com/docs/components/choice
Shows a standalone checkbox and a radio group inside a Fieldset. Radios require the name prop to group them and enable arrow-key navigation.
```astro
```
--------------------------------
### Use theme prop on Section and Card
Source: https://lumosframework.com/docs/concepts/theming
Section, BaseLayout, and Card take a theme prop. This example shows a dark section with a brand card inside it.
```astro
On a dark surface
```
--------------------------------
### Section component example
Source: https://lumosframework.com/docs/concepts/layout
A Section with dark theme and large top padding, medium bottom padding, containing a Heading. The container is automatic, so you never add one yourself.
```astro
Everything here is centred and capped
```
--------------------------------
### ContentWrapper variant="columns" with column2 slot
Source: https://lumosframework.com/docs/concepts/layout
Use the columns variant to place the default slot in the first column and the column2 slot in the second. Below the medium breakpoint (64rem) the two columns stack. The second block is the copyable one-line version of the same example.
```astro
Two columnsThe first column holds the default slot.
```
```astro
Two columnsThe first column holds the default slot.
```
--------------------------------
### Preview the build locally
Source: https://lumosframework.com/docs/guides/deploying
Serve the contents of the dist folder locally to verify the production output before deployment.
```bash
npm run preview
```
--------------------------------
### Build the project
Source: https://lumosframework.com/docs/guides/deploying
Run the build command to generate the finished site files in the dist folder.
```bash
npm run build
```
--------------------------------
### Create the project with npm create lumos@latest
Source: https://lumosframework.com/docs/installation
Scaffolds a new Lumos project named 'my-site' in the current directory.
```bash
npm create lumos@latest my-site
```
--------------------------------
### Mark-only Button Variants
Source: https://lumosframework.com/docs/components/button
Examples of mark-only buttons including play, close, and arrow variants.
```astro
```
--------------------------------
### Navigate to a folder
Source: https://lumosframework.com/docs/installation
Change to the directory where you want to create the Lumos project.
```bash
cd ~/Documents
```
--------------------------------
### Background Video with Overlay
Source: https://lumosframework.com/docs/components/video
Places a video in a Section's background slot, fills the band, and pairs with an Overlay for text readability. The video ignores mouse events.
```astro
Over the video
```
--------------------------------
### Paragraph usage example
Source: https://lumosframework.com/docs/components/paragraph
Renders a large paragraph with a maxWidth of 38 ch units. The tag defaults to 'p' and the variant is set to 'large'.
```astro
A lead paragraph, capped at a comfortable measure.
```
--------------------------------
### Open Modal with Button and Form
Source: https://lumosframework.com/docs/components/modal
Shows how to open a Modal using a Button with data-modal-open attribute and include a Form inside. The Modal requires an id prop; without it, nothing is rendered and a console warning appears in development.
```astro
```
--------------------------------
### Use theme class directly on a div
Source: https://lumosframework.com/docs/concepts/theming
Anywhere else, use the class directly. It is just CSS. This example uses theme-invert to contrast with whatever surrounds it.
```astro
Contrasts with whatever surrounds it.
```
--------------------------------
### Basic Video Usage
Source: https://lumosframework.com/docs/components/video
Renders a video with a fixed aspect ratio using the '16-9' variant. The src and poster attributes are set to example paths.
```astro
```
--------------------------------
### Fill in project details in src/consts.ts
Source: https://lumosframework.com/docs/installation
Open src/consts.ts and replace the placeholder values with your own site name, description, and URL.
```typescript
export const SITE_NAME = "My Studio";
export const SITE_DESCRIPTION =
"A studio that makes things.";
export const SITE_URL = "https://example.com";
```
--------------------------------
### Import and use Icon component
Source: https://lumosframework.com/docs/components/icon
Import the Icon component and an SVG file, then render the icon with a specified variant.
```astro
---
import Icon from "@/components/Icon.astro";
import arrow from "@/assets/icons/arrow.svg";
---
```
--------------------------------
### Full page example: src/pages/index.astro
Source: https://lumosframework.com/docs/concepts/layout
Shows a complete Astro page using the Lumos layout system. It imports BaseLayout, Section, ContentWrapper, Grid, Heading, Paragraph, and Card components, then composes a dark-themed home page with a hero section, a two-column light section, and a responsive grid of cards. The second block is a copy of the same code in a single line, likely for quick copying.
```astro
---
import BaseLayout from "@/layouts/BaseLayout.astro";
import Section from "@/components/Section.astro";
import ContentWrapper from "@/components/ContentWrapper.astro";
import Grid from "@/components/Grid.astro";
import Heading from "@/components/Heading.astro";
import Paragraph from "@/components/Paragraph.astro";
import Card from "@/components/Card.astro";
---
A headlineA sentence under it.Two columnsText on the left, a visual on the right.
```
```astro
--- import BaseLayout from "@/layouts/BaseLayout.astro"; import Section from "@/components/Section.astro"; import ContentWrapper from "@/components/ContentWrapper.astro"; import Grid from "@/components/Grid.astro"; import Heading from "@/components/Heading.astro"; import Paragraph from "@/components/Paragraph.astro"; import Card from "@/components/Card.astro"; --- A headlineA sentence under it.Two columnsText on the left, a visual on the right.
```
--------------------------------
### Grid with xsmall and medium columns
Source: https://lumosframework.com/docs/components/grid
Sets two columns below 48rem and four from 48rem up. The `xsmall` prop is the base for all larger sizes.
```astro
1
2
```
--------------------------------
### Basic Dropdown usage
Source: https://lumosframework.com/docs/components/dropdown
A standard implementation of the Dropdown component containing a list of links.
```astro
```
--------------------------------
### Card Component List Implementation
Source: https://lumosframework.com/docs/components/card
Shows how to render a list of cards using a
element with the display-contents class and role="listitem" for accessibility.
```astro
{posts.map((post) => (
))}
```
--------------------------------
### Basic Tabs implementation
Source: https://lumosframework.com/docs/components/tabs
A standard implementation of the Tabs component using the links slot for navigation and ContentWrapper components for panel content.
```astro
StrategyDesignDevelopment…strategy……design……development…
```
--------------------------------
### Basic Slider implementation
Source: https://lumosframework.com/docs/components/slider
A standard Slider usage showing responsive slide counts for different screen sizes and a descriptive label.
```astro
```
--------------------------------
### Basic Heading tags
Source: https://lumosframework.com/docs/components/heading
Renders headings with different levels using the tag prop. The variant defaults to match the tag, so only tag is needed for standard headings.
```astro
Heading twoHeading threeHeading four
```
--------------------------------
### Grid with custom gap utility
Source: https://lumosframework.com/docs/components/grid
Overrides the default site gutter gap on a single grid using a `gap-*` utility class.
```astro
```
--------------------------------
### Two columns layout
Source: https://lumosframework.com/docs/components/content-wrapper
Arranges content into two equal columns that stack when the viewport is below 64rem. The default slot populates the first column, while the column2 slot populates the second.
```astro
Two columnsThe first column holds the default slot.
```