├── .gitattributes
├── README.md
├── birchtree.css
├── img
├── alerts.png
├── buttons.png
├── checkbox.png
├── headings.png
├── labels.png
├── nav-left.png
├── nav-right.png
├── nav.png
├── select.png
├── text-input-large.png
├── text-input.png
├── textarea.png
├── upload.png
└── wells.png
└── index.html
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Birchtree.css
2 |
3 | Mocking up simple personal pages or test sites for your business typically mean using zero, to close to zero styling, and moving on because "it’s just a test site, who cares?" Oh, and these pages usually look like trash on mobile. This is all reasonable, it doesn’t need to be this way!
4 |
5 | Birchtree.css is a small CSS package you can use to make those sites look good with very little effort. You could use this for a full, public website, but it’s lacking a ton of features, so you’d have to build all that out yourself.
6 |
7 | Yes, something like Bootstrap does this, but (a) I don't love how Bootstrap looks out of the box, and (b) our aim is to have as little code as possible. Just because I don't see the extent of Bootstrap, doesn't mean it's not overkill for some things.
8 |
9 | # Usage
10 |
11 | Think of this like Bootstrap, but way simpler and way smaller. You use some basic HTML formatting and class names to style everything from form inputs to buttons to headers and more.
12 |
13 | # Step 1: Import birchtree.css
14 |
15 | In your HTML or PHP file, load the CSS file.
16 |
17 | ```html
18 |
19 | ```
20 |
21 | # Step 2: Use the below formatting to get the styles.
22 |
23 | ## Contents
24 |
25 | * [Layout](#layout)
26 | * [Form Inputs](#form-inputs)
27 | * [Buttons](#buttons)
28 | * [Headings](#headings)
29 | * [Information Wells](#information-wells)
30 | * [Alerts](#alerts)
31 | * [Labels](#labels)
32 | * [Navigation Bars](#navigation-bars)
33 |
34 | ## Layout
35 |
36 | This ain’t Bootstrap, so don’t look to this to do advanced styling for you, but you can use the container
class to hold all parts of your page. This simply constrains the width and centers everything on the page.
37 |
38 | ```html
39 |
input-mega
class to the input-text
element.
60 |
61 | 
62 |
63 | ```html
64 | btn-submit
125 | * btn-warning
126 | * btn-danger
127 | * btn-dark
128 | * btn-light
129 |
130 | Buttons can be made larger or smaller if you’d like, using btn-sm
or btn-mega
131 |
132 | ```html
133 |
134 |
135 | ```
136 |
137 | ## Headings
138 |
139 | 
140 |
141 | There is nothing special to do here, Birchtree.css simply makes some small adjustments to heading designs.
142 |
143 | ```html
144 | site-title
to make your page’s name pop even more.
148 |
149 | ```html
150 | Page Title
151 | ```
152 |
153 | ## Information Wells
154 |
155 | 
156 |
157 | Typically used for instructional text.
158 |
159 | ```html
160 | alert-success
180 | * alert-warning
181 | * alert-danger
182 |
183 | ```html
184 | Item Badge
197 | ``` 198 | 199 | Labels will resize based on the size of their parent element, so the above example will be pretty small, but a label on anh1
will be much bigger.
200 |
201 | Again, there are a few colors to choose from.
202 |
203 | * label-success
204 | * label-warning
205 | * label-danger
206 |
207 | ```html
208 | Item Badge
209 | ``` 210 | 211 | ## Navigation Bars 212 | 213 |  214 | 215 | If you want to link to a few other pages, use the navigation bar element to make nicer links to your other pages. 216 | 217 | ```html 218 | 223 | ``` 224 | 225 | The default is to center the menu items, but you can left or right-justify them using: 226 | 227 |  228 | 229 | ```html 230 | 233 | ``` 234 | 235 |  236 | 237 | ```html 238 | 241 | ``` 242 | 243 | Also, there is an option to throw a subtle shadow under the navigation to add a little separation. 244 | 245 | ```html 246 | 249 | ``` 250 | 251 | 252 | -------------------------------------------------------------------------------- /birchtree.css: -------------------------------------------------------------------------------- 1 | /* General Rules */ 2 | * { 3 | font-family: -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 4 | box-sizing: border-box; 5 | } 6 | 7 | *::before, 8 | *::after { 9 | box-sizing: border-box; 10 | } 11 | 12 | body { 13 | margin: 0px; 14 | padding: 0px; 15 | } 16 | 17 | a { 18 | color: #189fcc; 19 | text-decoration: none; 20 | } 21 | 22 | hr { 23 | color: black; 24 | width: 100%; 25 | border: 0.5px solid black; 26 | margin: 40px 0; 27 | } 28 | 29 | .site-title { 30 | font-size: 50px; 31 | font-weight: 700; 32 | } 33 | 34 | h1 { 35 | font-weight: 300; 36 | margin: 20px 0 10px 0; 37 | font-size: 42px; 38 | } 39 | 40 | h2 { 41 | font-weight: 300; 42 | margin: 20px 0 10px 0; 43 | font-size: 34px; 44 | } 45 | 46 | h3 { 47 | font-weight: 300; 48 | margin: 20px 0 10px 0; 49 | font-size: 30px; 50 | } 51 | 52 | h4 { 53 | font-weight: 300; 54 | margin: 20px 0 10px 0; 55 | font-size: 26px; 56 | } 57 | 58 | h5 { 59 | font-weight: 300; 60 | margin: 20px 0 10px 0; 61 | font-size: 22px; 62 | } 63 | 64 | h6 { 65 | font-weight: 300; 66 | margin: 20px 0 10px 0; 67 | font-size: 18px; 68 | } 69 | 70 | .container { 71 | width: 700px; 72 | max-width: 95%; 73 | display: block; 74 | margin: 0px auto 100px auto; 75 | } 76 | 77 | /* Alerts */ 78 | .alert { 79 | background-color: #189fcc66; 80 | padding: 20px; 81 | margin: 20px 0px; 82 | border-radius: 4px; 83 | box-shadow: 0px 2px 8px #00000022; 84 | } 85 | .alert-success { 86 | background-color: #06D6A066; 87 | } 88 | .alert-warning { 89 | background-color: #f47f2c66; 90 | } 91 | .alert-danger { 92 | background-color: #EF476F66; 93 | } 94 | 95 | /* Labels */ 96 | .label { 97 | background-color: #189fcc; 98 | border-radius: 2px; 99 | padding: 5px 10px; 100 | color: white; 101 | font-size: 0.7em; 102 | font-weight: 700; 103 | } 104 | .label-success { 105 | background-color: #06D6A0; 106 | } 107 | .label-warning { 108 | background-color: #f47f2c; 109 | } 110 | .label-danger { 111 | background-color: #EF476F; 112 | } 113 | 114 | .well { 115 | background-color: #e5e9ea; 116 | padding: 20px; 117 | border-radius: 4px; 118 | margin: 20px 0; 119 | } 120 | 121 | /* Buttons */ 122 | .btn { 123 | -webkit-appearance: none; 124 | font-family: sans-serif; 125 | background: linear-gradient(140deg, #189fcc, #0babe0); 126 | box-shadow: 0px 2px 8px #189fcc40; 127 | color: white; 128 | border: none; 129 | padding: 10px 30px; 130 | margin: 5px 3px; 131 | font-size: 18px; 132 | border-radius: 4px; 133 | min-width: 140px; 134 | transition: 200ms; 135 | } 136 | .btn:hover { 137 | cursor: pointer; 138 | opacity: 0.95; 139 | transition: 200ms; 140 | } 141 | .btn-sm { 142 | font-size: 14px; 143 | padding: 6px 18px; 144 | margin: 5px 1px; 145 | min-width: 50px; 146 | border-radius: 3px; 147 | box-shadow: 0px 2px 8px #189fcc40; 148 | } 149 | .btn-mega { 150 | font-size: 22px; 151 | padding: 15px 30px; 152 | margin: 10px 5px; 153 | min-width: 200px; 154 | border-radius: 6px; 155 | box-shadow: 0px 2px 8px #189fcc40; 156 | } 157 | /* Button Styles */ 158 | .btn-success { 159 | background: linear-gradient(140deg, #06D6A0, #0fe2aa); 160 | box-shadow: 0px 2px 8px #06D6A040; 161 | } 162 | .btn-warning { 163 | background: linear-gradient(140deg, #f47f2c, #f99045); 164 | box-shadow: 0px 2px 8px #f47f2c40; 165 | } 166 | .btn-danger { 167 | background: linear-gradient(140deg, #EF476F, #f7315f); 168 | box-shadow: 0px 2px 8px #EF476F40; 169 | } 170 | .btn-dark { 171 | background: linear-gradient(140deg, #073B4C, #08485e); 172 | box-shadow: 0px 2px 8px #073B4C40; 173 | } 174 | .btn-light { 175 | background: linear-gradient(140deg, #e5e9ea, #f4f4f4); 176 | box-shadow: 0px 2px 8px #00000030; 177 | color: #073B4C; 178 | } 179 | 180 | /* Inputs */ 181 | .input { 182 | padding: 10px 0px; 183 | } 184 | .input-text, .input-textarea, .input-upload { 185 | display: flex; 186 | flex-direction: column; 187 | } 188 | .input-label { 189 | padding-left: 3px; 190 | } 191 | .input-field { 192 | border: 1px solid #e5e9ea; 193 | -webkit-appearance: none; 194 | border-radius: 2px; 195 | font-size: 16px; 196 | padding: 6px; 197 | box-shadow: 0px 2px 8px #00000011; 198 | } 199 | textarea { 200 | border: 1px solid #e5e9ea; 201 | -webkit-appearance: none; 202 | border-radius: 2px; 203 | font-size: 16px; 204 | padding: 6px; 205 | box-shadow: 0px 2px 8px #00000011; 206 | height: 200px; 207 | } 208 | .input-mega .input-label { 209 | font-size: 22px; 210 | } 211 | .input-mega .input-field { 212 | font-size: 24px; 213 | padding: 10px; 214 | } 215 | .input-dropdown { 216 | width: 100%; 217 | border: 1px solid #e5e9ea; 218 | -webkit-appearance: none; 219 | border-radius: 2px; 220 | font-size: 16px; 221 | padding: 6px; 222 | box-shadow: 0px 2px 8px #00000011; 223 | } 224 | .file-upload { 225 | font-size: 20px; 226 | } 227 | 228 | /* Navigation */ 229 | .nav { 230 | display: flex; 231 | justify-content: center; 232 | background-color: #f4f4f4; 233 | margin: 0px 0px 30px 0px; 234 | padding: auto 20px; 235 | } 236 | .nav-left { 237 | justify-content: flex-start; 238 | } 239 | .nav-right { 240 | justify-content: flex-end; 241 | } 242 | .nav-shadow { 243 | box-shadow: 0px 2px 12px #00000020; 244 | } 245 | .nav-item { 246 | padding: 20px 10px; 247 | transition: 100ms; 248 | } 249 | .nav-item:hover { 250 | background-color: #189fcc; 251 | cursor: pointer; 252 | } 253 | .nav-item:hover > a { 254 | color: white; 255 | } 256 | .active { 257 | color: #000000; 258 | border-bottom: 3px solid #189fcc; 259 | } 260 | .active:hover { 261 | color:white; 262 | } 263 | 264 | @media (prefers-color-scheme: dark) { 265 | * { 266 | color: white; 267 | } 268 | html { 269 | background-color: #222222; 270 | } 271 | hr { 272 | color: white; 273 | } 274 | .well { 275 | background-color: #121212; 276 | } 277 | input { 278 | background-color: #222222; 279 | border-color: white; 280 | } 281 | .alert { 282 | background-color: #189fcc; 283 | } 284 | .alert-success { 285 | background-color: #06D6A0; 286 | } 287 | .alert-warning { 288 | background-color: #f47f2c; 289 | } 290 | .alert-danger { 291 | background-color: #EF476F; 292 | } 293 | .nav { 294 | background-color: #121212; 295 | } 296 | .active { 297 | color: white; 298 | } 299 | } -------------------------------------------------------------------------------- /img/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/alerts.png -------------------------------------------------------------------------------- /img/buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/buttons.png -------------------------------------------------------------------------------- /img/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/checkbox.png -------------------------------------------------------------------------------- /img/headings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/headings.png -------------------------------------------------------------------------------- /img/labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/labels.png -------------------------------------------------------------------------------- /img/nav-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/nav-left.png -------------------------------------------------------------------------------- /img/nav-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/nav-right.png -------------------------------------------------------------------------------- /img/nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/nav.png -------------------------------------------------------------------------------- /img/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/select.png -------------------------------------------------------------------------------- /img/text-input-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/text-input-large.png -------------------------------------------------------------------------------- /img/text-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/text-input.png -------------------------------------------------------------------------------- /img/textarea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/textarea.png -------------------------------------------------------------------------------- /img/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/upload.png -------------------------------------------------------------------------------- /img/wells.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattbirchler/birchtree-css/f72918545d3a3f54caa71967d855b2e26997ac1b/img/wells.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Think of this like Bootstrap, but way simpler and way smaller. You use some basic HTML formatting and class names to style everything from form inputs to buttons to headers and more.
48 |Clone the birhtree.css file into your project and load it from your header.
50 |<link rel="stylesheet" src="birchtree.css">
52 | <div class="container">
76 | { page content }
77 | </div>
78 | <div class="input input-text">
89 | <span class="input-label">Email Address</span>
90 | <input class="input-field" type="text" placeholder="hey@yo.co" name="email">
91 | </div>
You can also create large text fields.
94 | 95 |<div class="input input-text input-mega">
101 | <span class="input-label">Email Address</span>
102 | <input class="input-field" type="text" placeholder="hey@yo.co" name="email">
103 | </div>
<div class="input input-chckbox">
111 | <input type="checkbox"> <span class="input-label">Checkbox Stuff</span>
112 | </div>
<div class="input input-select">
126 | <select class="input-dropdown">
127 | <option value="">-- Select An Option --</option>
128 | <option value="1">One</option>
129 | <option value="2">Two</option>
130 | <option value="3">Three</option>
131 | </select>
132 | </div>
<div class="input input-upload">
142 | <label class="input-label" for="file-upload">Upload a file</label>
143 | <input type="file" class="file-upload" id="file-upload">
144 | </div>
<button class="btn">Default</button>
156 | <button class="btn btn-success">Success</button>
157 | <button class="btn btn-warning">Warning</button>
158 | <button class="btn btn-danger">Danger</button>
159 | <button class="btn btn-dark">Dark</button>
160 | <button class="btn btn-light">Light</button>
You can also make smaller or larger buttons.
163 | 164 | 165 | 166 |<button class="btn btn-sm">Small Button</button>
<button class="btn btn-mega">Large Button</button>
Nothing special to do here, just use headings like normal.
174 |<div class="well">
188 | Paragraph of text goes here.
189 | </div>
<div class="alert">
207 | Hey, this is an alert that I think you should really care about!
208 | </div>
Item 99+
215 | 216 |<p>Item <span class="label">Badge</span></p>
217 | <p>Item <span class="label label-success">Badge</span></p>
218 | <p>Item <span class="label label-warning">Badge</span></p>
219 | <p>Item <span class="label label-danger">Badge</span></p>
If you want to link to a few other pages, use the navigation bar element to make nicer links to your other pages.
224 | 225 | 230 | 231 |<div class="nav">
232 | <div class="nav-item active" aria-current="page">Home</div>
233 | <div class="nav-item"><a href="https://google.com" target="_blank">Google</a></div>
234 | <div class="nav-item"><a href="https://github.com" target="_blank">GitHub</a></div>
235 | </div>
The default behavior is to center the items, but you can also left or right align the menu items.
238 | 239 | 244 | 245 |<div class="nav nav-left">
246 | <div class="nav-item active" aria-current="page">Home</div>
247 | <div class="nav-item"><a href="https://google.com" target="_blank">Google</a></div>
248 | <div class="nav-item"><a href="https://github.com" target="_blank">GitHub</a></div>
249 | </div>
<div class="nav nav-right">
259 | <div class="nav-item active" aria-current="page">Home</div>
260 | <div class="nav-item"><a href="https://google.com" target="_blank">Google</a></div>
261 | <div class="nav-item"><a href="https://github.com" target="_blank">GitHub</a></div>
262 | </div>