@ng-brutalism/ui 0.1.2 → 0.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 -0
- package/README.md +52 -28
- package/fesm2022/ng-brutalism-ui.mjs +2687 -70
- package/fesm2022/ng-brutalism-ui.mjs.map +1 -1
- package/package.json +5 -2
- package/styles.css +106 -2
- package/theme.css +11 -0
- package/types/ng-brutalism-ui.d.ts +919 -145
package/CHANGELOG.md
CHANGED
|
@@ -7,11 +7,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.0] — 2026-06-02
|
|
11
|
+
|
|
12
|
+
`v0.2.0` introduces a stronger composition system for building brutalist Angular UIs. The new layout grammar — Surface, Section, Stack, Cluster, and Split — lets you compose full card layouts, multi-column pages, and recipe UIs entirely from library primitives with consistent token-driven spacing, border, shadow, and typography.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
**Composition system**
|
|
17
|
+
|
|
18
|
+
- `NbSurface` — base brutalist panel directive. Token-driven tone, radius, border, shadow, padding, size, layout, edge, clip, and typography inputs.
|
|
19
|
+
- `NbSection` — inner region primitive for Surface. Owns padding, divider side, divider style, layout (default / center / between), align, and flush.
|
|
20
|
+
- `NbStack` — vertical rhythm primitive. Gap, align, justify, and separator inputs.
|
|
21
|
+
- `NbCluster` — horizontal/wrapping rhythm primitive. Gap, padding, align, justify, wrap, and separator inputs.
|
|
22
|
+
- `NbSplit` — two-column main-and-aside primitive. Ratio, gap, padding, collapse (responsive breakpoint), align, and separator inputs.
|
|
23
|
+
- `NbMediaFrame` — framed media primitive with aspect ratio locking. Ratios: `auto`, `1/1`, `3/4`, `4/3`, `3/2`, `16/9`, `21/9`.
|
|
24
|
+
- `NbText` — inline and block text primitive.
|
|
25
|
+
- `NbDisplay` — large headline primitive.
|
|
26
|
+
- `NbTitle`, `NbTypography` — typography composition primitives.
|
|
27
|
+
- `NbStat` — statistic display primitive.
|
|
28
|
+
- `NbRating` — star rating primitive.
|
|
29
|
+
- `NbProgress` — progress bar primitive.
|
|
30
|
+
- `NbStatusDot` — status indicator primitive with size and radius inputs.
|
|
31
|
+
- `NbCallout` — inline callout/emphasis primitive.
|
|
32
|
+
- `NbMediaItem` — icon + label pair primitive.
|
|
33
|
+
- `NbAvatar`, `NbAvatarGroup` — avatar and avatar stack primitives.
|
|
34
|
+
- `NbChip`, `NbChipGroup` — tag/badge primitive with tone, padding, and group layout.
|
|
35
|
+
- `NbIconButton` — icon-only button primitive.
|
|
36
|
+
- `NbSticker` — decorative burst/shape primitive.
|
|
37
|
+
- `NbHalftone` — decorative halftone pattern primitive.
|
|
38
|
+
- `NbSeparator` — divider line primitive.
|
|
39
|
+
|
|
40
|
+
**Recipes**
|
|
41
|
+
|
|
42
|
+
- Travel Card — media, sticker, display, split, cluster composition recipe.
|
|
43
|
+
- Podcast Card — audio episode card composition recipe.
|
|
44
|
+
- Open to Work Card — professional profile card composition recipe.
|
|
45
|
+
|
|
46
|
+
**Shared token vocabulary**
|
|
47
|
+
|
|
48
|
+
- Unified `NbBorderStrength`, `NbShadow`, `NbRadius`, `NbSpacing`, `NbPadding`, `NbToneToken` across all composition primitives.
|
|
49
|
+
- `NbTypographyFont` — font role contract used by `NbTypography` and `NbSurface`.
|
|
50
|
+
- `NbMediaFrameRatio` — now includes `'3/4'` portrait ratio.
|
|
51
|
+
|
|
10
52
|
### Breaking Changes (pre-publish, still 0.x)
|
|
11
53
|
|
|
12
54
|
- **Class names**: `Component`/`Directive` suffix dropped. `NbCardComponent` → `NbCard`, `NbButtonDirective` → `NbButton`, `NbSelectComponent` → `NbSelect`, `NbAccordionComponent` → `NbAccordion`, etc.
|
|
13
55
|
- **`defaultValue` removed from `<nb-accordion>`**: use `[value]="..."` for one-way initial value or `[(value)]` for two-way binding.
|
|
14
56
|
- **`defaultValue` and `defaultOpen` removed from `<nb-select>`**: use `[value]` / `[(value)]` and `[open]` / `[(open)]` respectively.
|
|
57
|
+
- **`NbSection` `border` input renamed to `divider`**: `border="bottom"` → `divider="bottom"`. Separates the region-border concept from the outline-strength `border` input used everywhere else.
|
|
15
58
|
|
|
16
59
|
### Internal
|
|
17
60
|
|
|
@@ -43,6 +86,7 @@ Initial public release.
|
|
|
43
86
|
### Added
|
|
44
87
|
|
|
45
88
|
**Form controls**
|
|
89
|
+
|
|
46
90
|
- `NbButton`
|
|
47
91
|
- `NbCheckbox`
|
|
48
92
|
- `NbInput`
|
|
@@ -53,6 +97,7 @@ Initial public release.
|
|
|
53
97
|
- `NbTextarea`
|
|
54
98
|
|
|
55
99
|
**Layout & content**
|
|
100
|
+
|
|
56
101
|
- `NbAccordion`
|
|
57
102
|
- `NbAvatar`
|
|
58
103
|
- `NbBadge`
|
|
@@ -62,9 +107,11 @@ Initial public release.
|
|
|
62
107
|
- `NbTitle`
|
|
63
108
|
|
|
64
109
|
**Overlays**
|
|
110
|
+
|
|
65
111
|
- `NbDialog`
|
|
66
112
|
|
|
67
113
|
**Foundation**
|
|
114
|
+
|
|
68
115
|
- MIT license, Angular 21 + Tailwind v4 peer dependencies
|
|
69
116
|
- `styles.css` single-import entrypoint (default theme)
|
|
70
117
|
- `theme.css` token-only entrypoint for advanced theming
|
|
@@ -72,4 +119,5 @@ Initial public release.
|
|
|
72
119
|
- CSS custom properties as the primary theming surface
|
|
73
120
|
|
|
74
121
|
**Notes**
|
|
122
|
+
|
|
75
123
|
- Pre-1.0: minor versions may include breaking changes while APIs settle.
|
package/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# ng-brutalism — Neo-brutalist Angular UI
|
|
1
|
+
# ng-brutalism — Neo-brutalist Angular UI Primitive Library
|
|
2
2
|
|
|
3
3
|
Build loud. Stay sharp.
|
|
4
4
|
|
|
5
|
-
ng-brutalism is a neo-brutalist Angular UI
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
ng-brutalism is a neo-brutalist Angular UI primitive library and composition
|
|
6
|
+
system for building loud, token-driven Angular interfaces with directive-first
|
|
7
|
+
APIs, signals, zoneless-friendly patterns, Tailwind CSS v4, chunky borders,
|
|
8
|
+
offset shadows, and punchy colors.
|
|
8
9
|
|
|
9
10
|
If you like shadcn/ui or daisyUI, but for Angular and built around brutalism.
|
|
10
11
|
|
|
@@ -17,7 +18,15 @@ If you like shadcn/ui or daisyUI, but for Angular and built around brutalism.
|
|
|
17
18
|
[npm](https://www.npmjs.com/package/@ng-brutalism/ui) ·
|
|
18
19
|
[GitHub](https://github.com/khangtrannn/ng-brutalism)
|
|
19
20
|
|
|
20
|
-

|
|
22
|
+
|
|
23
|
+
## What's new in v0.2.0
|
|
24
|
+
|
|
25
|
+
v0.2.0 ships a full composition system. The new layout grammar — **Surface, Section, Stack, Cluster, and Split** — lets you compose complete card layouts, multi-column pages, and recipe UIs entirely from library primitives with consistent token-driven spacing, border, shadow, and typography.
|
|
26
|
+
|
|
27
|
+
New primitives: `NbSurface`, `NbSection`, `NbStack`, `NbCluster`, `NbSplit`, `NbMediaFrame`, `NbText`, `NbDisplay`, `NbStat`, `NbRating`, `NbProgress`, `NbStatusDot`, `NbCallout`, `NbMediaItem`, `NbAvatarGroup`, `NbChip`, `NbChipGroup`, `NbIconButton`, `NbSticker`, `NbHalftone`, `NbSeparator` — plus three ready-made composition recipes.
|
|
28
|
+
|
|
29
|
+
See the [full changelog](https://github.com/khangtrannn/ng-brutalism/blob/main/CHANGELOG.md) for details and migration notes.
|
|
21
30
|
|
|
22
31
|
## Install
|
|
23
32
|
|
|
@@ -92,29 +101,38 @@ bootstrapApplication(App, {
|
|
|
92
101
|
});
|
|
93
102
|
```
|
|
94
103
|
|
|
95
|
-
##
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
104
|
+
## Primitive System
|
|
105
|
+
|
|
106
|
+
ng-brutalism is a composition system, not just a component list. Use primitives
|
|
107
|
+
like `nbSurface`, `nbSection`, `nbSplit`, `nbStack`, and `nbCluster` as the
|
|
108
|
+
layout grammar. Add emphasis with `nbChip`, `nbCallout`, `nbSticker`, and
|
|
109
|
+
`nbStatusDot`. Finish with typography, media, forms, and action primitives.
|
|
110
|
+
|
|
111
|
+
Inputs are for common design decisions. CSS variables are for local art
|
|
112
|
+
direction. Classes are for layout escape hatches.
|
|
113
|
+
|
|
114
|
+
| Group | Primitives |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| Foundation | Tokens, theme provider, CSS variables, `nbClass` |
|
|
117
|
+
| Layout | Stack, Cluster, Split, Section, Separator |
|
|
118
|
+
| Surfaces | Surface, Card, Image Card, Media Frame |
|
|
119
|
+
| Typography | Text, Display, Title |
|
|
120
|
+
| Emphasis | Badge, Chip, Callout, Sticker, Status Dot, Rating, Progress, Halftone |
|
|
121
|
+
| Actions | Button, Icon Button, Button Trailing Icon |
|
|
122
|
+
| Media | Avatar, Avatar Group, Icon, Media Item, Stat |
|
|
123
|
+
| Forms | Input, Input Group, Textarea, Checkbox, Select, Label |
|
|
124
|
+
| Overlays / Interaction | Accordion, Dialog, Marquee |
|
|
125
|
+
| Recipes | Travel Card, Podcast Card, Open to Work Card |
|
|
126
|
+
|
|
127
|
+
## Compositions
|
|
128
|
+
|
|
129
|
+
Three ready-made recipes ship with v0.2.0, each assembled entirely from library primitives:
|
|
130
|
+
|
|
131
|
+
<p>
|
|
132
|
+
<img src="https://raw.githubusercontent.com/khangtrannn/ng-brutalism/main/docs/assets/compositions/personal-profile.png" width="32%" alt="Open to Work Card — personal profile composition built from Surface, Split, Chip, and MediaFrame primitives" />
|
|
133
|
+
<img src="https://raw.githubusercontent.com/khangtrannn/ng-brutalism/main/docs/assets/compositions/podcast-promo.png" width="32%" alt="Podcast Card — audio episode composition built from Surface, Section, Badge, and Avatar primitives" />
|
|
134
|
+
<img src="https://raw.githubusercontent.com/khangtrannn/ng-brutalism/main/docs/assets/compositions/travel-campaign.png" width="32%" alt="Travel Card — campaign-style composition built from Surface, MediaFrame, Display, and Sticker primitives" />
|
|
135
|
+
</p>
|
|
118
136
|
|
|
119
137
|
## Documentation
|
|
120
138
|
|
|
@@ -141,6 +159,12 @@ All visual tokens are exposed as CSS custom properties (`--nb-*`). A subset of t
|
|
|
141
159
|
**Is ng-brutalism ready for production?**
|
|
142
160
|
It is pre-1.0. Component APIs are usable today, but minor versions may include breaking changes while the library settles.
|
|
143
161
|
|
|
162
|
+
## Migrating from v0.1.x
|
|
163
|
+
|
|
164
|
+
v0.2.0 contains breaking changes. The `Component`/`Directive` suffix was dropped from all exported names: `NbCardComponent` → `NbCard`, `NbButtonDirective` → `NbButton`, `NbSelectComponent` → `NbSelect`, etc. The `defaultValue` / `defaultOpen` inputs on `<nb-accordion>` and `<nb-select>` were removed in favour of `[value]` / `[(value)]` bindings. `NbSection`'s `border` input was renamed to `divider`.
|
|
165
|
+
|
|
166
|
+
See the [full changelog](https://github.com/khangtrannn/ng-brutalism/blob/main/CHANGELOG.md) for the complete list.
|
|
167
|
+
|
|
144
168
|
## Author
|
|
145
169
|
|
|
146
170
|
Created by [Khang Tran](https://github.com/khangtrannn). MIT licensed. Source code is available on GitHub.
|