bullframe.css 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -1
- package/README.md +102 -28
- package/bin/bullframe.mjs +277 -0
- package/dist/css/bullframe-classless-dark.css +65 -58
- package/dist/css/bullframe-classless-dark.css.map +1 -1
- package/dist/css/bullframe-classless-dark.min.css +1 -1
- package/dist/css/bullframe-classless-dark.min.css.map +1 -1
- package/dist/css/bullframe-classless-system-default.css +61 -102
- package/dist/css/bullframe-classless-system-default.css.map +1 -1
- package/dist/css/bullframe-classless-system-default.min.css +1 -1
- package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
- package/dist/css/bullframe-classless.css +37 -52
- package/dist/css/bullframe-classless.css.map +1 -1
- package/dist/css/bullframe-classless.min.css +1 -1
- package/dist/css/bullframe-classless.min.css.map +1 -1
- package/dist/css/bullframe-dark.css +216 -155
- package/dist/css/bullframe-dark.css.map +1 -1
- package/dist/css/bullframe-dark.min.css +1 -1
- package/dist/css/bullframe-dark.min.css.map +1 -1
- package/dist/css/bullframe-system-default.css +221 -154
- package/dist/css/bullframe-system-default.css.map +1 -1
- package/dist/css/bullframe-system-default.min.css +1 -1
- package/dist/css/bullframe-system-default.min.css.map +1 -1
- package/dist/css/bullframe-utilities.css +132 -65
- package/dist/css/bullframe-utilities.css.map +1 -1
- package/dist/css/bullframe-utilities.min.css +1 -1
- package/dist/css/bullframe-utilities.min.css.map +1 -1
- package/dist/css/bullframe.css +160 -115
- package/dist/css/bullframe.css.map +1 -1
- package/dist/css/bullframe.min.css +1 -1
- package/dist/css/bullframe.min.css.map +1 -1
- package/dist/skills/AGENTS.bullframe.md +46 -0
- package/dist/skills/_shared/builds.md +66 -0
- package/dist/skills/_shared/conventions.md +93 -0
- package/dist/skills/api.json +1023 -0
- package/dist/skills/bullframe-convert/SKILL.md +117 -0
- package/dist/skills/bullframe-convert/examples/after.html +43 -0
- package/dist/skills/bullframe-convert/examples/before.html +44 -0
- package/dist/skills/bullframe-core/SKILL.md +143 -0
- package/dist/skills/bullframe-docs-page/SKILL.md +89 -0
- package/dist/skills/bullframe-docs-page/examples/docs-page.html +72 -0
- package/dist/skills/bullframe-forms/SKILL.md +99 -0
- package/dist/skills/bullframe-forms/examples/contact-form.html +67 -0
- package/dist/skills/bullframe-landing-page/SKILL.md +96 -0
- package/dist/skills/bullframe-landing-page/examples/landing.html +98 -0
- package/dist/skills/index.json +134 -0
- package/package.json +21 -7
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Contact · Fieldnote</title>
|
|
7
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<a class="bf-skip-link" href="#main-content">Skip to content</a>
|
|
11
|
+
|
|
12
|
+
<main id="main-content" class="bf-container bf-container--break-md bf-p-b-4">
|
|
13
|
+
<h1>Contact</h1>
|
|
14
|
+
<p class="bf-lead">Tell us what you need. We reply within one business day.</p>
|
|
15
|
+
|
|
16
|
+
<div class="bf-row">
|
|
17
|
+
<div class="bf-col-7">
|
|
18
|
+
<form action="/contact" method="post">
|
|
19
|
+
<label for="contact-name">Name</label>
|
|
20
|
+
<input id="contact-name" type="text" name="name" autocomplete="name" required />
|
|
21
|
+
|
|
22
|
+
<label for="contact-email">Email</label>
|
|
23
|
+
<input id="contact-email" type="email" name="email" autocomplete="email" required />
|
|
24
|
+
|
|
25
|
+
<label for="contact-subject">Subject</label>
|
|
26
|
+
<select id="contact-subject" name="subject" required>
|
|
27
|
+
<option value="">Choose one…</option>
|
|
28
|
+
<option value="sales">Sales</option>
|
|
29
|
+
<option value="support">Support</option>
|
|
30
|
+
<option value="other">Other</option>
|
|
31
|
+
</select>
|
|
32
|
+
|
|
33
|
+
<label for="contact-message">Message</label>
|
|
34
|
+
<textarea id="contact-message" name="message" rows="5" aria-describedby="contact-message-hint" required></textarea>
|
|
35
|
+
<p id="contact-message-hint"><small>Up to 2000 characters.</small></p>
|
|
36
|
+
|
|
37
|
+
<fieldset>
|
|
38
|
+
<legend>How should we reply?</legend>
|
|
39
|
+
|
|
40
|
+
<input id="reply-email" type="radio" name="reply" value="email" checked />
|
|
41
|
+
<label for="reply-email">By email</label>
|
|
42
|
+
|
|
43
|
+
<input id="reply-phone" type="radio" name="reply" value="phone" />
|
|
44
|
+
<label for="reply-phone">By phone</label>
|
|
45
|
+
</fieldset>
|
|
46
|
+
|
|
47
|
+
<p class="bf-m-t-2">
|
|
48
|
+
<button type="submit" class="bf-btn bf-btn--primary">Send message</button>
|
|
49
|
+
</p>
|
|
50
|
+
</form>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="bf-col-5">
|
|
54
|
+
<aside style="border: 1px solid var(--bf-gray-light); border-radius: var(--bf-spacing-sm); padding: var(--bf-spacing-xl)">
|
|
55
|
+
<h2 class="bf-m-t-0">Office</h2>
|
|
56
|
+
<p>
|
|
57
|
+
Via Example 12<br />
|
|
58
|
+
00100 Rome, Italy
|
|
59
|
+
</p>
|
|
60
|
+
<h3>Hours</h3>
|
|
61
|
+
<p class="bf-m-b-0">Mon to Fri, 09:00 to 18:00 CET</p>
|
|
62
|
+
</aside>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</main>
|
|
66
|
+
</body>
|
|
67
|
+
</html>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bullframe-landing-page
|
|
3
|
+
description: Build a marketing or product landing page with Bullframe CSS. Use for a hero, feature row, pricing block, call to action, or any multi-section marketing page.
|
|
4
|
+
bullframe: '>=6.1.0 <7.0.0'
|
|
5
|
+
builds: [bullframe.css, bullframe-dark.css, bullframe-system-default.css]
|
|
6
|
+
requires: [bullframe-core]
|
|
7
|
+
docs: ['/layout', '/utilities/grid', '/buttons', '/components/cards']
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Landing page
|
|
11
|
+
|
|
12
|
+
<!-- bf-absent: bf-col-md-6, bf-col-lg-4, bf-card, bf-hero, bf-section -->
|
|
13
|
+
|
|
14
|
+
A landing page in Bullframe is one HTML file: a container, a few `.bf-row` sections, and
|
|
15
|
+
composed markup for anything that looks like a card. No JavaScript, no build step.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
A marketing page, product page, cover page, pricing page or feature page. For a form-first
|
|
20
|
+
page use `bullframe-forms`; for prose use `bullframe-docs-page`.
|
|
21
|
+
|
|
22
|
+
## Inputs to gather
|
|
23
|
+
|
|
24
|
+
Product name, one-sentence value proposition, primary and secondary call to action with
|
|
25
|
+
their targets, the sections wanted, and whether the page is light, dark or follows the OS.
|
|
26
|
+
Assume a class-based light build when nothing is said, and state that in one line.
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
1. One `<h1>`, in the hero. Sections below it use `<h2>`, cards inside them `<h3>`. Never
|
|
31
|
+
skip a level.
|
|
32
|
+
2. Wrap the page body in `.bf-container.bf-container--break-md`. That caps the width and
|
|
33
|
+
stacks every row below 768px.
|
|
34
|
+
3. Each section is a `.bf-row` whose `.bf-col-*` children sum to 12 or less. Twelfths only:
|
|
35
|
+
there are no per-breakpoint column classes.
|
|
36
|
+
4. The primary action is `<a class="bf-btn bf-btn--primary">`, the secondary is
|
|
37
|
+
`<a class="bf-btn">`. One primary per screen.
|
|
38
|
+
5. Cards are `<article>` with a border, radius and padding written as inline
|
|
39
|
+
`var(--bf-*)` declarations. There is no card class.
|
|
40
|
+
6. Use `<table class="bf-table bf-table--zebra">` with a `<caption>` for a comparison
|
|
41
|
+
table, not a grid of divs.
|
|
42
|
+
7. Decorative images take `alt=""`. Meaningful ones take real alt text.
|
|
43
|
+
8. Keep custom CSS out of the page. If the design needs brand colour, override
|
|
44
|
+
`--bf-blue` and `--bf-blue-light` in a `<style>` block or project stylesheet.
|
|
45
|
+
|
|
46
|
+
## Recipe
|
|
47
|
+
|
|
48
|
+
1. Pick the build (`bullframe-core` has the table).
|
|
49
|
+
2. Emit the scaffold: doctype, `lang`, charset, viewport, title, description, one
|
|
50
|
+
stylesheet link.
|
|
51
|
+
3. `<body>` opens with the skip link, then `<header>` with a `<nav aria-label="Primary">`
|
|
52
|
+
if the page has navigation.
|
|
53
|
+
4. Hero: `.bf-row` with a `.bf-col-7` text column and a `.bf-col-5` media column.
|
|
54
|
+
5. Feature row: `.bf-row` with three `.bf-col-4` articles.
|
|
55
|
+
6. Comparison or pricing: a `.bf-table` with a caption and scoped headers.
|
|
56
|
+
7. Closing call to action, then `<footer>`.
|
|
57
|
+
8. Re-read the output and delete any class that is not in `api.json`.
|
|
58
|
+
|
|
59
|
+
## Example
|
|
60
|
+
|
|
61
|
+
[`examples/landing.html`](examples/landing.html) is a complete page built to these rules.
|
|
62
|
+
It validates under the project's html-validate a11y config and contains no custom CSS
|
|
63
|
+
beyond inline token references.
|
|
64
|
+
|
|
65
|
+
## Expected output
|
|
66
|
+
|
|
67
|
+
One `index.html` (or the path the user asked for) that opens in a browser and renders
|
|
68
|
+
finished with a single stylesheet link. No placeholder classes, no framework mixing, no
|
|
69
|
+
`<style>` block other than declared token overrides.
|
|
70
|
+
|
|
71
|
+
## Failure modes
|
|
72
|
+
|
|
73
|
+
- Writing `.bf-col-md-6` or `.bf-col-lg-4`. They do not exist; stacking is a container
|
|
74
|
+
modifier.
|
|
75
|
+
- Columns summing past 12, which wraps the row unintentionally.
|
|
76
|
+
- Inventing `.bf-card`, `.bf-hero` or `.bf-section`.
|
|
77
|
+
- Using `<div>` for what is a `<section>`, `<article>`, `<nav>` or `<footer>`.
|
|
78
|
+
- Jumping from `<h1>` to `<h3>`.
|
|
79
|
+
- Reimplementing the grid in a `<style>` block because a breakpoint class seemed missing.
|
|
80
|
+
- Adding a colour as a hex literal instead of overriding the token, which then does not
|
|
81
|
+
follow the dark build.
|
|
82
|
+
|
|
83
|
+
## Do not
|
|
84
|
+
|
|
85
|
+
- Do not add JavaScript for layout, theming or animation.
|
|
86
|
+
- Do not link a second CSS framework or a second base build.
|
|
87
|
+
- Do not use `bf-container--fluid` for a marketing page unless the design is edge to edge.
|
|
88
|
+
- Do not set `outline: none` on the buttons.
|
|
89
|
+
|
|
90
|
+
## Canonical docs
|
|
91
|
+
|
|
92
|
+
- Layout: <https://bullframecss.marcopontili.com/layout.md>
|
|
93
|
+
- Grid: <https://bullframecss.marcopontili.com/utilities/grid.md>
|
|
94
|
+
- Buttons: <https://bullframecss.marcopontili.com/buttons.md>
|
|
95
|
+
- Card patterns: <https://bullframecss.marcopontili.com/components/cards.md>
|
|
96
|
+
- Live examples: <https://bullframecss.marcopontili.com/examples>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Fieldnote · Notebook for site drafts</title>
|
|
7
|
+
<meta name="description" content="Capture outlines, screenshots and links in one place before you ship." />
|
|
8
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css" />
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<a class="bf-skip-link" href="#main-content">Skip to content</a>
|
|
12
|
+
|
|
13
|
+
<header class="bf-container bf-container--break-md bf-p-t-3">
|
|
14
|
+
<nav aria-label="Primary">
|
|
15
|
+
<a href="#features">Features</a> · <a href="#pricing">Pricing</a> ·
|
|
16
|
+
<a href="#start">Get started</a>
|
|
17
|
+
</nav>
|
|
18
|
+
</header>
|
|
19
|
+
|
|
20
|
+
<main id="main-content" class="bf-container bf-container--break-md bf-p-b-4">
|
|
21
|
+
<section class="bf-row bf-m-b-4">
|
|
22
|
+
<div class="bf-col-7">
|
|
23
|
+
<h1>Notebook for site drafts</h1>
|
|
24
|
+
<p class="bf-lead">Capture outlines, screenshots and links in one place before you ship.</p>
|
|
25
|
+
<p>
|
|
26
|
+
<a class="bf-btn bf-btn--primary" href="#start">Start free</a>
|
|
27
|
+
<a class="bf-btn" href="#pricing">See pricing</a>
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="bf-col-5">
|
|
31
|
+
<p class="bf-t-center bf-p-4" style="background: var(--bf-light); border-radius: var(--bf-spacing-sm)">Screenshot goes here</p>
|
|
32
|
+
</div>
|
|
33
|
+
</section>
|
|
34
|
+
|
|
35
|
+
<section id="features" class="bf-m-b-4">
|
|
36
|
+
<h2>What you get</h2>
|
|
37
|
+
<div class="bf-row">
|
|
38
|
+
<div class="bf-col-4">
|
|
39
|
+
<article style="border: 1px solid var(--bf-gray-light); border-radius: var(--bf-spacing-sm); padding: var(--bf-spacing-xl)">
|
|
40
|
+
<h3 class="bf-m-t-0">Shared boards</h3>
|
|
41
|
+
<p class="bf-m-b-0">Invite a teammate and keep every draft in one board.</p>
|
|
42
|
+
</article>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="bf-col-4">
|
|
45
|
+
<article style="border: 1px solid var(--bf-gray-light); border-radius: var(--bf-spacing-sm); padding: var(--bf-spacing-xl)">
|
|
46
|
+
<h3 class="bf-m-t-0">Fast search</h3>
|
|
47
|
+
<p class="bf-m-b-0">Find a note by title, tag or URL snippet.</p>
|
|
48
|
+
</article>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="bf-col-4">
|
|
51
|
+
<article style="border: 1px solid var(--bf-gray-light); border-radius: var(--bf-spacing-sm); padding: var(--bf-spacing-xl)">
|
|
52
|
+
<h3 class="bf-m-t-0">Export</h3>
|
|
53
|
+
<p class="bf-m-b-0">Download Markdown or a zip of attached images.</p>
|
|
54
|
+
</article>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</section>
|
|
58
|
+
|
|
59
|
+
<section id="pricing" class="bf-m-b-4">
|
|
60
|
+
<h2>Pricing</h2>
|
|
61
|
+
<table class="bf-table bf-table--zebra">
|
|
62
|
+
<caption>
|
|
63
|
+
Plans and monthly price
|
|
64
|
+
</caption>
|
|
65
|
+
<thead>
|
|
66
|
+
<tr>
|
|
67
|
+
<th scope="col">Plan</th>
|
|
68
|
+
<th scope="col">Price</th>
|
|
69
|
+
<th scope="col">Boards</th>
|
|
70
|
+
</tr>
|
|
71
|
+
</thead>
|
|
72
|
+
<tbody>
|
|
73
|
+
<tr>
|
|
74
|
+
<td>Solo</td>
|
|
75
|
+
<td>Free</td>
|
|
76
|
+
<td>3</td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<td>Team</td>
|
|
80
|
+
<td>12 EUR</td>
|
|
81
|
+
<td>Unlimited</td>
|
|
82
|
+
</tr>
|
|
83
|
+
</tbody>
|
|
84
|
+
</table>
|
|
85
|
+
</section>
|
|
86
|
+
|
|
87
|
+
<section id="start">
|
|
88
|
+
<h2>Start a board</h2>
|
|
89
|
+
<p>No card, no install. One board is free forever.</p>
|
|
90
|
+
<p><a class="bf-btn bf-btn--primary" href="#start">Start free</a></p>
|
|
91
|
+
</section>
|
|
92
|
+
</main>
|
|
93
|
+
|
|
94
|
+
<footer class="bf-container bf-container--break-md bf-p-b-4">
|
|
95
|
+
<p class="bf-m-b-0">© 2026 Fieldnote</p>
|
|
96
|
+
</footer>
|
|
97
|
+
</body>
|
|
98
|
+
</html>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bullframe.css",
|
|
3
|
+
"version": "6.2.0",
|
|
4
|
+
"docs": "https://bullframecss.marcopontili.com",
|
|
5
|
+
"api": "api.json",
|
|
6
|
+
"agentsBlock": "AGENTS.bullframe.md",
|
|
7
|
+
"shared": [
|
|
8
|
+
"_shared/builds.md",
|
|
9
|
+
"_shared/conventions.md"
|
|
10
|
+
],
|
|
11
|
+
"skills": [
|
|
12
|
+
{
|
|
13
|
+
"name": "bullframe-core",
|
|
14
|
+
"description": "Core conventions for writing HTML styled with Bullframe CSS. Use before any other Bullframe skill, and whenever choosing a build, scaffolding a page, theming with tokens, or deciding whether to write custom CSS.",
|
|
15
|
+
"path": "bullframe-core/SKILL.md",
|
|
16
|
+
"bullframe": ">=6.1.0 <7.0.0",
|
|
17
|
+
"builds": [
|
|
18
|
+
"bullframe.css",
|
|
19
|
+
"bullframe-dark.css",
|
|
20
|
+
"bullframe-system-default.css",
|
|
21
|
+
"bullframe-classless.css",
|
|
22
|
+
"bullframe-classless-dark.css",
|
|
23
|
+
"bullframe-classless-system-default.css",
|
|
24
|
+
"bullframe-utilities.css"
|
|
25
|
+
],
|
|
26
|
+
"requires": [],
|
|
27
|
+
"docs": [
|
|
28
|
+
"https://bullframecss.marcopontili.com/getting-started",
|
|
29
|
+
"https://bullframecss.marcopontili.com/variables",
|
|
30
|
+
"https://bullframecss.marcopontili.com/theming",
|
|
31
|
+
"https://bullframecss.marcopontili.com/api-reference"
|
|
32
|
+
],
|
|
33
|
+
"files": [
|
|
34
|
+
"SKILL.md"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "bullframe-convert",
|
|
39
|
+
"description": "Convert existing HTML and CSS to Bullframe CSS. Use when migrating a page off Bootstrap, Tailwind, a hand-rolled stylesheet, or an older Bullframe version, and when asked to remove custom CSS in favour of the framework.",
|
|
40
|
+
"path": "bullframe-convert/SKILL.md",
|
|
41
|
+
"bullframe": ">=6.1.0 <7.0.0",
|
|
42
|
+
"builds": [
|
|
43
|
+
"bullframe.css",
|
|
44
|
+
"bullframe-classless.css",
|
|
45
|
+
"bullframe-utilities.css"
|
|
46
|
+
],
|
|
47
|
+
"requires": [
|
|
48
|
+
"bullframe-core"
|
|
49
|
+
],
|
|
50
|
+
"docs": [
|
|
51
|
+
"https://bullframecss.marcopontili.com/migration",
|
|
52
|
+
"https://bullframecss.marcopontili.com/utilities",
|
|
53
|
+
"https://bullframecss.marcopontili.com/api-reference"
|
|
54
|
+
],
|
|
55
|
+
"files": [
|
|
56
|
+
"SKILL.md",
|
|
57
|
+
"examples/after.html",
|
|
58
|
+
"examples/before.html"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "bullframe-docs-page",
|
|
63
|
+
"description": "Build a documentation, article or reference page with Bullframe CSS. Use for docs, guides, changelogs, help center articles, blog posts, or any prose-first page.",
|
|
64
|
+
"path": "bullframe-docs-page/SKILL.md",
|
|
65
|
+
"bullframe": ">=6.1.0 <7.0.0",
|
|
66
|
+
"builds": [
|
|
67
|
+
"bullframe-classless.css",
|
|
68
|
+
"bullframe-classless-dark.css",
|
|
69
|
+
"bullframe-classless-system-default.css",
|
|
70
|
+
"bullframe.css"
|
|
71
|
+
],
|
|
72
|
+
"requires": [
|
|
73
|
+
"bullframe-core"
|
|
74
|
+
],
|
|
75
|
+
"docs": [
|
|
76
|
+
"https://bullframecss.marcopontili.com/typography",
|
|
77
|
+
"https://bullframecss.marcopontili.com/getting-started",
|
|
78
|
+
"https://bullframecss.marcopontili.com/examples"
|
|
79
|
+
],
|
|
80
|
+
"files": [
|
|
81
|
+
"SKILL.md",
|
|
82
|
+
"examples/docs-page.html"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "bullframe-forms",
|
|
87
|
+
"description": "Build accessible forms with Bullframe CSS. Use when creating a contact form, login, signup, checkout, search box, filter bar, or any page with input controls.",
|
|
88
|
+
"path": "bullframe-forms/SKILL.md",
|
|
89
|
+
"bullframe": ">=6.1.0 <7.0.0",
|
|
90
|
+
"builds": [
|
|
91
|
+
"bullframe.css",
|
|
92
|
+
"bullframe-dark.css",
|
|
93
|
+
"bullframe-system-default.css",
|
|
94
|
+
"bullframe-classless.css"
|
|
95
|
+
],
|
|
96
|
+
"requires": [
|
|
97
|
+
"bullframe-core"
|
|
98
|
+
],
|
|
99
|
+
"docs": [
|
|
100
|
+
"https://bullframecss.marcopontili.com/forms",
|
|
101
|
+
"https://bullframecss.marcopontili.com/components/forms",
|
|
102
|
+
"https://bullframecss.marcopontili.com/accessibility"
|
|
103
|
+
],
|
|
104
|
+
"files": [
|
|
105
|
+
"SKILL.md",
|
|
106
|
+
"examples/contact-form.html"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "bullframe-landing-page",
|
|
111
|
+
"description": "Build a marketing or product landing page with Bullframe CSS. Use for a hero, feature row, pricing block, call to action, or any multi-section marketing page.",
|
|
112
|
+
"path": "bullframe-landing-page/SKILL.md",
|
|
113
|
+
"bullframe": ">=6.1.0 <7.0.0",
|
|
114
|
+
"builds": [
|
|
115
|
+
"bullframe.css",
|
|
116
|
+
"bullframe-dark.css",
|
|
117
|
+
"bullframe-system-default.css"
|
|
118
|
+
],
|
|
119
|
+
"requires": [
|
|
120
|
+
"bullframe-core"
|
|
121
|
+
],
|
|
122
|
+
"docs": [
|
|
123
|
+
"https://bullframecss.marcopontili.com/layout",
|
|
124
|
+
"https://bullframecss.marcopontili.com/utilities/grid",
|
|
125
|
+
"https://bullframecss.marcopontili.com/buttons",
|
|
126
|
+
"https://bullframecss.marcopontili.com/components/cards"
|
|
127
|
+
],
|
|
128
|
+
"files": [
|
|
129
|
+
"SKILL.md",
|
|
130
|
+
"examples/landing.html"
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bullframe.css",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Bullframe CSS is a lightweight CSS framework for fast, responsive, accessible UIs. Semantic by default. Any stack. Classless when you want it. System dark built in. Seven builds, solid cross-browser support.",
|
|
6
6
|
"main": "dist/css/bullframe.css",
|
|
@@ -18,8 +18,14 @@
|
|
|
18
18
|
"./dist/css/*": "./dist/css/*",
|
|
19
19
|
"./package.json": "./package.json"
|
|
20
20
|
},
|
|
21
|
+
"bin": {
|
|
22
|
+
"bullframe": "bin/bullframe.mjs",
|
|
23
|
+
"bullframe.css": "bin/bullframe.mjs"
|
|
24
|
+
},
|
|
21
25
|
"files": [
|
|
26
|
+
"bin/",
|
|
22
27
|
"dist/css/",
|
|
28
|
+
"dist/skills/",
|
|
23
29
|
"LICENSE",
|
|
24
30
|
"README.md",
|
|
25
31
|
"CHANGELOG.md"
|
|
@@ -31,21 +37,29 @@
|
|
|
31
37
|
"dev": "vite",
|
|
32
38
|
"build": "vite build",
|
|
33
39
|
"preview": "vite preview",
|
|
34
|
-
"prepublishOnly": "npm run build",
|
|
40
|
+
"prepublishOnly": "npm run build && npm run skills:build",
|
|
35
41
|
"lint": "stylelint \"src/**/*.css\"",
|
|
36
42
|
"lint:fix": "stylelint \"src/**/*.css\" --fix",
|
|
37
43
|
"lint:html": "html-validate \"src/**/*.html\"",
|
|
38
|
-
"format": "prettier --write \"src/**/*.css\" \"src/**/*.html\" \"docs/**/*.md\" \"docs/.vitepress/**/*.css\" \"docs/.vitepress/**/*.mjs\" \"docs/.vitepress/**/*.js\" \"scripts/**/*.mjs\"",
|
|
39
|
-
"format:check": "prettier --check \"src/**/*.css\" \"src/**/*.html\" \"docs/**/*.md\" \"docs/.vitepress/**/*.css\" \"docs/.vitepress/**/*.mjs\" \"docs/.vitepress/**/*.js\" \"scripts/**/*.mjs\"",
|
|
44
|
+
"format": "prettier --write \"src/**/*.css\" \"src/**/*.html\" \"src/**/*.mjs\" \"src/skills/**/*.md\" \"bin/**/*.mjs\" \"tests/**/*.mjs\" \"docs/**/*.md\" \"docs/.vitepress/**/*.css\" \"docs/.vitepress/**/*.mjs\" \"docs/.vitepress/**/*.js\" \"scripts/**/*.mjs\"",
|
|
45
|
+
"format:check": "prettier --check \"src/**/*.css\" \"src/**/*.html\" \"src/**/*.mjs\" \"src/skills/**/*.md\" \"bin/**/*.mjs\" \"tests/**/*.mjs\" \"docs/**/*.md\" \"docs/.vitepress/**/*.css\" \"docs/.vitepress/**/*.mjs\" \"docs/.vitepress/**/*.js\" \"scripts/**/*.mjs\"",
|
|
40
46
|
"test:e2e": "playwright test",
|
|
41
47
|
"test:e2e:update": "playwright test --update-snapshots",
|
|
48
|
+
"test:e2e:sync-from-ci": "node scripts/sync-e2e-baselines-from-ci.mjs",
|
|
49
|
+
"skills:build": "node scripts/build-skills.mjs",
|
|
50
|
+
"skills:check": "node --test tests/skills/*.test.mjs",
|
|
51
|
+
"skills:snapshot": "node scripts/build-skills.mjs --snapshot",
|
|
42
52
|
"docs:dev": "npm run docs:sync-public && vitepress dev docs",
|
|
43
53
|
"docs:sync-public": "node scripts/sync-docs-public.mjs",
|
|
44
|
-
"docs:api-reference": "node scripts/build-api-reference.mjs",
|
|
54
|
+
"docs:api-reference": "node scripts/build-api-reference.mjs && prettier --write docs/api-reference.md",
|
|
45
55
|
"docs:sri": "node scripts/generate-sri.mjs && prettier --write docs/getting-started.md docs/theming.md docs/theming/dark-mode.md",
|
|
46
|
-
"docs:build": "npm run build && npm run docs:sri && npm run docs:sync-public && vitepress build docs",
|
|
56
|
+
"docs:build": "npm run build && npm run skills:build && npm run docs:sri && npm run docs:sync-public && vitepress build docs",
|
|
47
57
|
"docs:preview": "vitepress preview docs",
|
|
48
|
-
"examples:shots": "node scripts/capture-example-screenshots.mjs"
|
|
58
|
+
"examples:shots": "node scripts/capture-example-screenshots.mjs",
|
|
59
|
+
"kitchen-sink:variants": "node scripts/generate-kitchen-sink-variants.mjs",
|
|
60
|
+
"brand:icons": "node scripts/render-brand-icons.mjs",
|
|
61
|
+
"brand:images": "node scripts/generate-brand-images.mjs",
|
|
62
|
+
"brand:images:check": "node scripts/generate-brand-images.mjs --check"
|
|
49
63
|
},
|
|
50
64
|
"repository": {
|
|
51
65
|
"type": "git",
|