Compare commits

..

No commits in common. 'main' and 'release/0.4' have entirely different histories.

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Björn Hase, me@herr-hase.wtf
Copyright (c) 2021 Björn Hase, Tentakelfabrik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

@ -1,9 +1,11 @@
# Plain UI - Simple Framework for Building Apps and Websites
# Plain UI - Lightweight CSS UI Framework for Building Apps and Websites
**Plain UI is currently under development, Styles, Names and Documentation may change until Release!**
[Documentation](https://plain-ui.com)
## Install
```
npm install @tiny-components/plain-ui --save
npm install @tentakelfabrik/plain-ui --save
```

@ -1,593 +0,0 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI 0.5 | Simple UI Framework for Apps and Websites
</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<div class="m-top-4 m-bottom-4 h4">
Plain UI 0.5
</div>
</div>
<div class="bar__main justify-center">
<div class="tabs tabs--contrast">
<a href="index.html" class="tabs__item ">
Basics
</a>
<a href="components.html" class="tabs__item tabs__item--selected">
Components
</a>
<a href="layout.html" class="tabs__item ">
Layout
</a>
<a href="helpers.html" class="tabs__item ">
Helpers
</a>
</div>
</div>
</div>
</header>
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Components
</h1>
<!-- -->
<h2>
Badge
</h2>
<span class="badge">
Category
</span>
<span class="badge badge--round">
99+
</span>
<!-- -->
<h2 class="m-top-5">
Bar
</h2>
<div class="bar">
<div class="bar__start">
<button class="button button--transparent">
<svg class="icon fill-text-contrast fill-text-hover marginless" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
<div class="bar__main">
Bar
</div>
</div>
<!-- -->
<h2 class="m-top-5">
Buttons
</h2>
<div>
<button class="button">
Default
</button>
<button class="button">
Icon
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
</button>
<button class="button button--selected">
Selected
</button>
<button class="button" disabled>
Disabled
</button>
</div>
<div>
<button class="button button--danger">
danger
</button>
<button class="button button--success">
success
</button>
<button class="button button--warning">
warning
</button>
<button class="button button--info">
info
</button>
</div>
<div>
<button class="button button--full">
full
</button>
<button class="button button--full button--danger">
danger
</button>
<button class="button button--full button--success">
success
</button>
<button class="button button--full button--warning">
warning
</button>
<button class="button button--full button--info">
info
</button>
</div>
<div>
<button class="button button--outline">
outline
</button>
</div>
<button class="button button--small">
Small
</button>
<!-- -->
<h2 class="m-top-5">
Field
</h2>
<div class="field-group">
<label class="field-label">
Name
<input class="field-text" />
</label>
</div>
<div class="field-group">
<label class="field-label">
Message
<textarea class="field-text"></textarea>
</label>
</div>
<div class="field-group field-group--valid">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
Surname
<input class="field-text" />
</label>
</div>
<div class="field-group field-group--error">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-warning"></use>
</svg>
E-Mail
<input class="field-text" />
</label>
<span class="field-error">
String is not valid
</span>
</div>
<div class="field-group">
<label class="field-label">
Towns
<select class="field-choice">
<option></option>
<option value="lonytown">Lonytown</option>
</select>
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox-checked"></use>
</svg>
Checkbox
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio A
</label>
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio B
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" name="radio" value="true" />
<span class="field-switch"></span>
</label>
</div>
<!-- -->
<h2 class="m-top-5">
Group
</h2>
<div class="group">
<div class="group__item background-color-primary color-text-contrast p-3">
One
</div>
<div class="group__item background-color-primary color-text-contrast p-3">
Two
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2>
Hero
</h2>
</div>
</div>
</div>
<div class="hero">
<img style="max-height: 400px;" src="/image.jpg" />
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="m-top-5">
Icon
</h2>
<svg class="icon" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
<svg class="icon fill-danger" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-camera"></use>
</svg>
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-clock"></use>
</svg>
<!-- Loading -->
<h2 class="m-top-5">
Loading
</h2>
<div class="loading">
<span></span>
<span></span>
<span></span>
</div>
<h2 class="m-top-5">
Media
</h2>
<figure class="figure">
<img class="media" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
<!-- modal -->
<h2 class="m-top-5">
Modal
</h2>
<button class="button" onclick="openModal()">
Click me!
</button>
<script type="text/javascript">
function openModal() {
document.querySelector('.modal').classList.add('modal--open')
}
function closeModal() {
document.querySelector('.modal').classList.remove('modal--open')
}
</script>
<div class="modal">
<div class="modal__inner">
<div class="modal__title t-center">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
Delete
</div>
<div class="modal__body center">
Do you really wan't to delete all files?
</div>
<div class="modal__footer">
<button class="button button--outline button--danger" onclick="closeModal()">
Confirm
</button>
<button class="button button--outline float-right" onclick="closeModal()">
Reject
</button>
</div>
</div>
</div>
<!-- panel -->
<h2 class="m-top-5">
Panel
</h2>
<div class="panel">
<div class="bar">
<div class="bar__start">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-expand"></use>
</svg>
</button>
</div>
<div class="bar__main">Panel</div>
<div class="bar__end">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-edit"></use>
</svg>
</button>
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Hallo
</p>
</div>
</div>
</div>
<!-- progress -->
<h2 class="m-top-5">
Progress
</h2>
<div class="progress">
<div class="progress__inner" style="width: 20%;"></div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar
</h2>
<button class="button" onclick="openSidebar()">
Click me!
</button>
<script type="text/javascript">
function openSidebar() {
document.querySelector('.sidebar').classList.add('sidebar--open')
}
function closeSidebar() {
document.querySelector('.sidebar').classList.remove('sidebar--open')
}
</script>
<div class="sidebar">
<div class="sidebar__inner">
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebar()">
Close
</button>
</div>
</div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar + Bar
</h2>
<button class="button" onclick="openSidebarBar()">
Click me!
</button>
<script type="text/javascript">
function openSidebarBar() {
document.querySelector('#sidebar-bar').classList.add('sidebar--open')
}
function closeSidebarBar() {
document.querySelector('#sidebar-bar').classList.remove('sidebar--open')
}
</script>
<div id="sidebar-bar" class="sidebar">
<div class="sidebar__inner">
<div class="bar">
<div class="bar__main">
Sidebar
</div>
<div class="bar__end">
<button class="button button--transparent" type="button" onclick="closeSidebarBar()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebarBar()">
Close
</button>
</div>
</div>
</div>
<!-- table -->
<h2 class="m-top-5">
Table
</h2>
<table class="table table--striped table--hover">
<thead>
<tr class="table__tr">
<th class="table__th">A</th>
<th class="table__th">B</th>
<th class="table__th">C</th>
<th class="table__th">D</th>
</tr>
</thead>
<tbody>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
</tbody>
</table>
<!--- tabs -->
<h2 class="m-top-5">
Tabs
</h2>
<div class="tabs">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
<h2 class="m-top-5">
Tabs + Bar
</h2>
<div class="bar">
<div class="tabs tabs--contrast">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
</div>
<!-- toast -->
<h2 class="m-top-5">
Toast
</h2>
<script type="text/javascript">
function addToast() {
document.querySelector('#toast').style.display = 'block'
setTimeout(function() {
document.querySelector('#toast .toast').classList.add('toast--animation')
}, 100)
}
function closeToast() {
setTimeout(function() {
document.querySelector('#toast').style.display = 'none'
}, 1000)
document.querySelector('#toast .toast').classList.remove('toast--animation')
}
</script>
<button class="button" onclick="addToast()">
Click me!
</button>
<div id="toast" class="toast-wrapper" style="display: none;">
<div class="toast toast--danger">
<div class="toast__icon">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-warning"></use>
</svg>
</div>
<div class="toast__body">
Warning! Action not Working!
</div>
<button class="toast__button" onclick="closeToast()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
</div>
</footer>
</body>
</html

@ -1,72 +0,0 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI 0.5 | Simple UI Framework for Apps and Websites
</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<div class="m-top-4 m-bottom-4 h4">
Plain UI 0.5
</div>
</div>
<div class="bar__main justify-center">
<div class="tabs tabs--contrast">
<a href="index.html" class="tabs__item ">
Basics
</a>
<a href="components.html" class="tabs__item ">
Components
</a>
<a href="layout.html" class="tabs__item ">
Layout
</a>
<a href="helpers.html" class="tabs__item tabs__item--selected">
Helpers
</a>
</div>
</div>
</div>
</header>
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Helpers
</h1>
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
@TODO Documentation
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
</div>
</footer>
</body>
</html

@ -1,108 +0,0 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI 0.5 | Simple UI Framework for Apps and Websites
</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<div class="m-top-4 m-bottom-4 h4">
Plain UI 0.5
</div>
</div>
<div class="bar__main justify-center">
<div class="tabs tabs--contrast">
<a href="index.html" class="tabs__item tabs__item--selected">
Basics
</a>
<a href="components.html" class="tabs__item ">
Components
</a>
<a href="layout.html" class="tabs__item ">
Layout
</a>
<a href="helpers.html" class="tabs__item ">
Helpers
</a>
</div>
</div>
</div>
</header>
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Basics
</h1>
<!-- -->
<h3 class="m-top-5">
Heading
</h3>
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<!-- -->
<h3 class="m-top-5">
Content
</h3>
<div class="content">
<p>
Y'know this time it wasn't my fault. The Doc set all of his clocks twenty-five minutes slow. Listen, this is very important, I forgot my video camera, could you stop by my place and pick it up on your way to the mall? whoa, this is it, this is the part coming up, Doc. I'm really gonna miss you. Doc, about the future- Thank you, don't forget to take a flyer.
</p>
<p>
Dear Doctor Brown, on the night that I go back in time, you will be shot by terrorists. Please take whatever precautions are necessary to prevent this terrible disaster. Your friend, Marty. Well, safe and sound, now, n good old 1955. I've gotta go. Look, George, I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</p>
<ul>
<li>item 1</li>
<li>
item 2
<ul>
<li>child item 1</li>
<li>child item 2</li>
</ul>
</li>
</ul>
<ol>
<li>item 1</li>
<li>item 2</li>
</ol>
<dl>
<dt>defined title 1</dt>
<dd>defined item 1</dd>
</dl>
<blockquote>
I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</blockquote>
<mark>Mark</mark>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
</div>
</footer>
</body>
</html

File diff suppressed because it is too large Load Diff

@ -1,13 +0,0 @@
(self["webpackChunk_tiny_components_plain_ui"] = self["webpackChunk_tiny_components_plain_ui"] || []).push([["spritemap"],{
/***/ "?c20d":
/*!******************************!*\
!*** spritemap-dummy-module ***!
\******************************/
/***/ (() => {
/***/ })
}]);

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 66 KiB

31707
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,25 +1,25 @@
{
"name": "@tiny-components/plain-ui",
"version": "0.6.0",
"name": "@tentakelfabrik/plain-ui",
"version": "0.4.0",
"description": "Simple UI Framework for Building Apps and Websites",
"repository": {
"type": "git",
"url": "git@github.com:node001-net/plain-ui.git"
"url": "git@github.com:tentakelfabrik/plain-ui.git"
},
"author": "Björn Hase",
"license": "MIT",
"devDependencies": {
"html-webpack-plugin": "^5.5.0",
"laravel-mix": "^6.0.43",
"laravel-mix": "^6.0.16",
"laravel-mix-purgecss": "^6.0.0",
"postcss-css-variables": "^0.18.0",
"resolve-url-loader": "^5.0.0",
"sass": "^1.49.9",
"sass-loader": "^12.6.0",
"svg-spritemap-webpack-plugin": "^4.4.0",
"svgo": "^2.8.0"
"postcss-css-variables": "^0.17.0",
"resolve-url-loader": "^3.1.2",
"sass": "^1.32.8",
"sass-loader": "^11.0.1",
"svg-spritemap-webpack-plugin": "^3.9.1",
"svgo": "^1.3.2"
},
"dependencies": {
"normalize.css": "^8.0.1"
"normalize.css": "^8.0.1",
"reflex-grid": "^2.0.7"
}
}

@ -0,0 +1,969 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI | Lightweight CSS UI Framework for Building Apps and Websites
</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item">
Basics
</a>
<a href="components.html" class="tabs__item tabs__item--selected">
Components
</a>
<a href="layout.html" class="tabs__item">
Layout
</a>
<a href="helpers.html" class="tabs__item">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-bottom-5">
Components
</h1>
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Plain UI is currently under development, Styles, Names and Documentation may change until Release!
</p>
</div>
</div>
</div>
<h2>Badge</h2>
<div class="content m-bottom-4">
<code>&#x3C;span class=&#x22;badge&#x22;&#x3E;
Category
&#x3C;/span&#x3E;
</code>
</div>
<span class="badge">
Category
</span>
<span class="badge badge--round">
99+
</span>
<h2 class="m-top-5">
Bar
</h2>
<div class="content m-bottom-4">
<code>&#x3C;div class=&#x22;bar&#x22;&#x3E;
&#x3C;div class=&#x22;bar__start&#x22;&#x3E;
&#x3C;button class=&#x22;button button--transparent&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast marginless&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-close&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;bar__main&#x22;&#x3E;
Bar
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="bar">
<div class="bar__start">
<button class="button button--transparent">
<svg class="icon fill-text-contrast marginless" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
<div class="bar__main">
Bar
</div>
</div>
<h2 class="m-top-5">
Buttons
</h2>
<div class="content">
<code>&lt;button class=&quot;button&quot;&gt;
Default
&lt;/button&gt;
</code>
</div>
<div>
<button class="button">
Default
</button>
<button class="button">
Icon
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
</button>
<button class="button button--selected">
Selected
</button>
<button class="button" disabled>
Disabled
</button>
</div>
<div>
<button class="button button--danger">
danger
</button>
<button class="button button--success">
success
</button>
<button class="button button--warning">
warning
</button>
<button class="button button--info">
info
</button>
</div>
<div>
<button class="button button--full">
full
</button>
<button class="button button--full button--danger">
danger
</button>
<button class="button button--full button--success">
success
</button>
<button class="button button--full button--warning">
warning
</button>
<button class="button button--full button--info">
info
</button>
</div>
<div>
<button class="button button--outline">
outline
</button>
</div>
<button class="button button--small">
Small
</button>
<h2 class="m-top-5">Field</h2>
<div class="content">
<code>&#x3C;div class=&#x22;field-group&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
Name
&#x3C;input class=&#x22;field-text&#x22; /&#x3E;
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group">
<label class="field-label">
Name
<input class="field-text" />
</label>
</div>
<div class="field-group">
<label class="field-label">
Message
<textarea class="field-text"></textarea>
</label>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group field-group--valid&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;svg class=&#x22;icon&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use class=&#x22;test&#x22; xlink:href=&#x22;symbol-defs.svg#icon-check&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
Surname
&#x3C;input class=&#x22;field-text&#x22; /&#x3E;
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group field-group--valid">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
Surname
<input class="field-text" />
</label>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group field-group--error&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;svg class=&#x22;icon&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use class=&#x22;test&#x22; xlink:href=&#x22;symbol-defs.svg#icon-warning&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
E-Mail
&#x3C;input class=&#x22;field-text&#x22; /&#x3E;
&#x3C;/label&#x3E;
&#x3C;span class=&#x22;field-error&#x22;&#x3E;
String is not valid
&#x3C;/span&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group field-group--error">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-warning"></use>
</svg>
E-Mail
<input class="field-text" />
</label>
<span class="field-error">
String is not valid
</span>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
Towns
&#x3C;select class=&#x22;field-choice&#x22;&#x3E;
&#x3C;option&#x3E;&#x3C;/option&#x3E;
&#x3C;option value=&#x22;lonytown&#x22;&#x3E;Lonytown&#x3C;/option&#x3E;
&#x3C;/select&#x3E;
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group">
<label class="field-label">
Towns
<select class="field-choice">
<option></option>
<option value="lonytown">Lonytown</option>
</select>
</label>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;input class=&#x22;field-choice&#x22; type=&#x22;checkbox&#x22; value=&#x22;true&#x22; /&#x3E;
&#x3C;svg class=&#x22;icon field-choice__unchecked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-checkbox&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;svg class=&#x22;icon field-choice__checked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-checkbox-checked&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
Checkbox
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox-checked"></use>
</svg>
Checkbox
</label>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;input class=&#x22;field-choice&#x22; type=&#x22;radio&#x22; name=&#x22;radio&#x22; value=&#x22;true&#x22; /&#x3E;
&#x3C;svg class=&#x22;icon field-choice__unchecked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-circle&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;svg class=&#x22;icon field-choice__checked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-circle-check&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
Radio A
&#x3C;/label&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;input class=&#x22;field-choice&#x22; type=&#x22;radio&#x22; name=&#x22;radio&#x22; value=&#x22;true&#x22; /&#x3E;
&#x3C;svg class=&#x22;icon field-choice__unchecked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-circle&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;svg class=&#x22;icon field-choice__checked&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-circle-check&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
Radio B
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio A
</label>
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio B
</label>
</div>
<div class="content">
<code>&#x3C;div class=&#x22;field-group&#x22;&#x3E;
&#x3C;label class=&#x22;field-label&#x22;&#x3E;
&#x3C;input class=&#x22;field-choice&#x22; type=&#x22;checkbox&#x22; name=&#x22;radio&#x22; value=&#x22;true&#x22; /&#x3E;
&#x3C;span class=&#x22;field-switch&#x22;&#x3E;&#x3C;/span&#x3E;
&#x3C;/label&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" name="radio" value="true" />
<span class="field-switch"></span>
</label>
</div>
<h2 class="m-top-5">
Group
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;group&#x22;&#x3E;
&#x3C;div class=&#x22;group__item background-color-primary color-text-contrast p-3&#x22;&#x3E;
One
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;group__item background-color-primary color-text-contrast p-3&#x22;&#x3E;
Two
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="group">
<div class="group__item background-color-primary color-text-contrast p-3">
One
</div>
<div class="group__item background-color-primary color-text-contrast p-3">
Two
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2>
Hero
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;hero&#x22;&#x3E;
&#x3C;img style=&#x22;max-height: 400px;&#x22; src=&#x22;/image.jpg&#x22; /&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
</div>
</div>
</div>
<div class="hero">
<img style="max-height: 400px;" src="/image.jpg" />
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="m-top-5">Icon</h2>
<div class="content">
<code>&#x3C;svg class=&#x22;icon&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-check&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;svg class=&#x22;icon fill-danger&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-camera&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;svg class=&#x22;icon fill-success&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-clock&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
</code>
</div>
<svg class="icon" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
<svg class="icon fill-danger" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-camera"></use>
</svg>
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-clock"></use>
</svg>
<!-- Loading -->
<h2 class="m-top-5">Loading</h2>
<div class="content">
<code>&#x3C;div class=&#x22;loading&#x22;&#x3E;
&#x3C;span&#x3E;&#x3C;/span&#x3E;
&#x3C;span&#x3E;&#x3C;/span&#x3E;
&#x3C;span&#x3E;&#x3C;/span&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="loading">
<span></span>
<span></span>
<span></span>
</div>
<h2 class="m-top-5">
Media
</h2>
<div class="content">
<code>&#x3C;figure class=&#x22;figure&#x22;&#x3E;
&#x3C;img class=&#x22;media&#x22; src=&#x22;/image.jpg&#x22; /&#x3E;
&#x3C;figcaption class=&#x22;figure__caption&#x22;&#x3E;
food truck yr franzen pabst
&#x3C;/figcaption&#x3E;
&#x3C;/figure&#x3E;
</code>
</div>
<figure class="figure">
<img class="media" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
<!-- modal -->
<h2 class="m-top-5">
Modal
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;modal&#x22;&#x3E;
&#x3C;div class=&#x22;modal__inner&#x22;&#x3E;
&#x3C;div class=&#x22;modal__title t-center&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-close&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
Delete
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;modal__body&#x22;&#x3E;
Do you really wan&#x27;t to delete all files?
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;modal__footer&#x22;&#x3E;
&#x3C;button class=&#x22;button button--outline button--danger&#x22; onclick=&#x22;closeModal()&#x22;&#x3E;
Confirm
&#x3C;/button&#x3E;
&#x3C;button class=&#x22;button button--outline float-right&#x22; onclick=&#x22;closeModal()&#x22;&#x3E;
Reject
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<button class="button" onclick="openModal()">
Click me!
</button>
<script type="text/javascript">
function openModal() {
document.querySelector('.modal').classList.add('modal--open')
}
function closeModal() {
document.querySelector('.modal').classList.remove('modal--open')
}
</script>
<div class="modal">
<div class="modal__inner">
<div class="modal__title t-center">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
Delete
</div>
<div class="modal__body center">
Do you really wan't to delete all files?
</div>
<div class="modal__footer">
<button class="button button--outline button--danger" onclick="closeModal()">
Confirm
</button>
<button class="button button--outline float-right" onclick="closeModal()">
Reject
</button>
</div>
</div>
</div>
<!-- panel -->
<h2 class="m-top-5">
Panel
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;panel&#x22;&#x3E;
&#x3C;div class=&#x22;bar&#x22;&#x3E;
&#x3C;div class=&#x22;bar__start&#x22;&#x3E;
&#x3C;button type=&#x22;button&#x22; class=&#x22;button button--transparent&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-expand&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;bar__main&#x22;&#x3E;Panel&#x3C;/div&#x3E;
&#x3C;div class=&#x22;bar__end&#x22;&#x3E;
&#x3C;button type=&#x22;button&#x22; class=&#x22;button button--transparent&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-edit&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/button&#x3E;
&#x3C;button type=&#x22;button&#x22; class=&#x22;button button--transparent&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;symbol-defs.svg#icon-close&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;panel__body&#x22;&#x3E;
&#x3C;div class=&#x22;content m-last-child-0&#x22;&#x3E;
&#x3C;p&#x3E;
Content
&#x3C;/p&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="panel">
<div class="bar">
<div class="bar__start">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-expand"></use>
</svg>
</button>
</div>
<div class="bar__main">Panel</div>
<div class="bar__end">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-edit"></use>
</svg>
</button>
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Hallo
</p>
</div>
</div>
</div>
<!-- progress -->
<h2 class="m-top-5">
Progress
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;progress&#x22;&#x3E;
&#x3C;div class=&#x22;progress__inner&#x22; style=&#x22;width: 20%;&#x22;&#x3E;&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="progress">
<div class="progress__inner" style="width: 20%;"></div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;sidebar&#x22;&#x3E;
&#x3C;div class=&#x22;sidebar__inner&#x22;&#x3E;
&#x3C;div class=&#x22;sidebar__body&#x22;&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;sidebar__footer&#x22;&#x3E;
&#x3C;button type=&#x22;button&#x22; class=&#x22;button m-bottom-0&#x22;&#x3E;
Close
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<button class="button" onclick="openSidebar()">
Click me!
</button>
<script type="text/javascript">
function openSidebar() {
document.querySelector('.sidebar').classList.add('sidebar--open')
}
function closeSidebar() {
document.querySelector('.sidebar').classList.remove('sidebar--open')
}
</script>
<div class="sidebar">
<div class="sidebar__inner">
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebar()">
Close
</button>
</div>
</div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar + Bar
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;sidebar&#x22;&#x3E;
&#x3C;div class=&#x22;sidebar__inner&#x22;&#x3E;
&#x3C;div class=&#x22;bar&#x22;&#x3E;
&#x3C;div class=&#x22;bar__main&#x22;&#x3E;
Sidebar
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;bar__end&#x22;&#x3E;
&#x3C;button class=&#x22;button button--transparent&#x22; type=&#x22;button&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;/symbol-defs.svg#icon-close&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;sidebar__body&#x22;&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;sidebar__footer&#x22;&#x3E;
&#x3C;button type=&#x22;button&#x22; class=&#x22;button m-bottom-0&#x22;&#x3E;
Close
&#x3C;/button&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<button class="button" onclick="openSidebarBar()">
Click me!
</button>
<script type="text/javascript">
function openSidebarBar() {
document.querySelector('#sidebar-bar').classList.add('sidebar--open')
}
function closeSidebarBar() {
document.querySelector('#sidebar-bar').classList.remove('sidebar--open')
}
</script>
<div id="sidebar-bar" class="sidebar">
<div class="sidebar__inner">
<div class="bar">
<div class="bar__main">
Sidebar
</div>
<div class="bar__end">
<button class="button button--transparent" type="button" onclick="closeSidebarBar()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebarBar()">
Close
</button>
</div>
</div>
</div>
<!-- table -->
<h2 class="m-top-5">
Table
</h2>
<div class="content">
<code>&#x3C;table class=&#x22;table table--striped table--hover&#x22;&#x3E;
&#x3C;thead&#x3E;
&#x3C;tr class=&#x22;table__tr&#x22;&#x3E;
&#x3C;th class=&#x22;table__th&#x22;&#x3E;A&#x3C;/th&#x3E;
&#x3C;th class=&#x22;table__th&#x22;&#x3E;B&#x3C;/th&#x3E;
&#x3C;th class=&#x22;table__th&#x22;&#x3E;C&#x3C;/th&#x3E;
&#x3C;th class=&#x22;table__th&#x22;&#x3E;D&#x3C;/th&#x3E;
&#x3C;/tr&#x3E;
&#x3C;/thead&#x3E;
&#x3C;tbody&#x3E;
&#x3C;tr class=&#x22;table__tr&#x22;&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;1&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;2&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;3&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;4&#x3C;/td&#x3E;
&#x3C;/tr&#x3E;
&#x3C;tr class=&#x22;table__tr&#x22;&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;1&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;2&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;3&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;4&#x3C;/td&#x3E;
&#x3C;/tr&#x3E;
&#x3C;tr class=&#x22;table__tr&#x22;&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;1&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;2&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;3&#x3C;/td&#x3E;
&#x3C;td class=&#x22;table__td&#x22;&#x3E;4&#x3C;/td&#x3E;
&#x3C;/tr&#x3E;
&#x3C;/tbody&#x3E;
&#x3C;/table&#x3E;
</code>
</div>
<table class="table table--striped table--hover">
<thead>
<tr class="table__tr">
<th class="table__th">A</th>
<th class="table__th">B</th>
<th class="table__th">C</th>
<th class="table__th">D</th>
</tr>
</thead>
<tbody>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
</tbody>
</table>
<!--- tabs -->
<h2 class="m-top-5">
Tabs
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;tabs&#x22;&#x3E;
&#x3C;a class=&#x22;tabs__item tabs__item--selected&#x22;&#x3E;
Tab A
&#x3C;/a&#x3E;
&#x3C;a class=&#x22;tabs__item&#x22;&#x3E;
Tab B
&#x3C;/a&#x3E;
&#x3C;a class=&#x22;tabs__item&#x22;&#x3E;
Tab C
&#x3C;/a&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="tabs">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
<h2 class="m-top-5">
Tabs + Bar
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;bar&#x22;&#x3E;
&#x3C;div class=&#x22;tabs tabs--contrast&#x22;&#x3E;
&#x3C;a class=&#x22;tabs__item tabs__item--selected&#x22;&#x3E;
Tab A
&#x3C;/a&#x3E;
&#x3C;a class=&#x22;tabs__item&#x22;&#x3E;
Tab B
&#x3C;/a&#x3E;
&#x3C;a class=&#x22;tabs__item&#x22;&#x3E;
Tab C
&#x3C;/a&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="bar">
<div class="tabs tabs--contrast">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
</div>
<!-- toast -->
<h2 class="m-top-5">
Toast
</h2>
<div class="content">
<code>&#x3C;div class=&#x22;toast-wrapper&#x22;&#x3E;
&#x3C;div class=&#x22;toast&#x22;&#x3E;
&#x3C;div class=&#x22;toast__icon&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;/symbol-defs.svg#icon-warning&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;toast__body&#x22;&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;toast__button&#x22;&#x3E;
&#x3C;svg class=&#x22;icon fill-text-contrast&#x22; aria-hidden=&#x22;true&#x22;&#x3E;
&#x3C;use xlink:href=&#x22;/symbol-defs.svg#icon-close&#x22;&#x3E;&#x3C;/use&#x3E;
&#x3C;/svg&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<script type="text/javascript">
function addToast() {
document.querySelector('#toast').style.display = 'block'
setTimeout(function() {
document.querySelector('#toast .toast').classList.add('toast--animation')
}, 100)
}
function closeToast() {
setTimeout(function() {
document.querySelector('#toast').style.display = 'none'
}, 1000)
document.querySelector('#toast .toast').classList.remove('toast--animation')
}
</script>
<button class="button" onclick="addToast()">
Click me!
</button>
<div id="toast" class="toast-wrapper" style="display: none;">
<div class="toast toast--danger">
<div class="toast__icon">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-warning"></use>
</svg>
</div>
<div class="toast__body">
Warning! Action not Working!
</div>
<button class="toast__button" onclick="closeToast()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

@ -0,0 +1,105 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Plain UI | Lightweight CSS UI Framework for Building Apps and Websites</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item">
Basics
</a>
<a href="components.html" class="tabs__item">
Components
</a>
<a href="layout.html" class="tabs__item">
Layout
</a>
<a href="helpers.html" class="tabs__item tabs__item--selected">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-bottom-5">
Helpers
</h1>
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Plain UI is currently under development, Styles, Names and Documentation may change until Release!
</p>
</div>
</div>
</div>
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
@TODO Documentation
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

Before

Width:  |  Height:  |  Size: 578 KiB

After

Width:  |  Height:  |  Size: 578 KiB

@ -0,0 +1,90 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI | Lightweight CSS UI Framework for Building Apps and Websites
</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item">
Basics
</a>
<a href="components.html" class="tabs__item">
Components
</a>
<a href="layout.html" class="tabs__item">
Layout
</a>
<a href="helpers.html" class="tabs__item">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
<div class="bar__end">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

@ -0,0 +1,90 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI | Lightweight CSS UI Framework for Building Apps and Websites
</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item">
Basics
</a>
<a href="components.html" class="tabs__item">
Components
</a>
<a href="layout.html" class="tabs__item">
Layout
</a>
<a href="helpers.html" class="tabs__item">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
<div class="bar__end">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

@ -0,0 +1,271 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Plain UI | Lightweight CSS UI Framework for Building Apps and Websites</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item tabs__item--selected">
Basics
</a>
<a href="components.html" class="tabs__item">
Components
</a>
<a href="layout.html" class="tabs__item">
Layout
</a>
<a href="helpers.html" class="tabs__item">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<div class="content">
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Plain UI is currently under development, Styles, Names and Documentation may change until Release!
</p>
</div>
</div>
</div>
<p>
<span class="bold">Plain UI</span> is a simple UI Framework. The Layout is inpired by minimalistc UI from NASA and MS-DOS.
The Idea behind this is a more Science related Layout, that has clear Colors and simple Patterns. All the Fancy Gloomy Shiny UI you know
from other Frameworks, thats not what you find here.
</p>
<p>
Plain UI
</p>
<h3 class="h5">
Contribution
</h3>
<ul>
<li>
<a href="https://tailwindcss.com/" class="strong" rel="noopener" target="_blank">TailwindCSS</a> for showing new ideas and concepts to handle Helper-Classes
</li>
<li>
<a href="https://reflexgrid.com/" class="strong" rel="noopener" target="_blank">Reflex Grid</a> for a great flex grid
</li>
<li>
<a href="https://necolas.github.io/normalize.css/" class="strong" rel="noopener" target="_blank">normalize.css</a> for resetting styles in all Browsers
</li>
<li>
<a href="https://icons.mono.company/" class="strong" rel="noopener" target="_blank">Mono Icons</a> for a beautiful Iconset
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="highlight">
Installation
</h2>
<div class="content">
<code>npm install @tentakelfabrik/plain-ui --save</code>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="highlight">
Building
</h2>
<div class="content">
<p>
Plain UI is build by <a href="https://purgecss.com/" class="strong" rel="noopener" target="_blank">Laravel-Mix</a>.
For this Site also <a href="https://purgecss.com/" class="strong" rel="noopener" target="_blank">PurgeCSS</a> was used. This is Important
to reduce the amount of Helper-Classes. For Laravel-Mix there is also a <a href="https://github.com/spatie/laravel-mix-purgecss" class="strong" rel="noopener" target="_blank">Wrapper</a>
available.
</p>
<code>mix
.setPublicPath('./public')
.sass('src/scss/plain-ui.scss', 'public/plain-ui.css')
.purgeCss({
extend: {
enabled: true,
content: [
path.join(__dirname, 'public/*.html'),
]
}
})
</code>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="highlight">
Core
</h2>
<h3 class="m-top-5">
Normalize
</h3>
<div class="content">
<p>
This is mainly done by <a href="https://necolas.github.io/normalize.css/" rel="noopener" target="_blank">normalize.css</a> with a few Modification.
</p>
</div>
<h3 class="m-top-5">
Heading
</h3>
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<h3 class="m-top-5">
Content
</h3>
<div class="content m-bottom-4">
<code>&#x3C;div class=&#x22;content&#x22;&#x3E;
&#x3C;p&#x3E;
Y&#x27;know this time it wasn&#x27;t my fault. The Doc set all of his clocks twenty-five minutes slow.
Listen, this is very important, I forgot my video camera, could you stop by my place and pick it up on
your way to the mall? whoa, this is it, this is the part coming up, Doc. I&#x27;m really gonna miss you.
Doc, about the future- Thank you, don&#x27;t forget to take a flyer.
&#x3C;/p&#x3E;
&#x3C;p&#x3E;
Dear Doctor Brown, on the night that I go back in time, you will be shot by terrorists. Please take
whatever precautions are necessary to prevent this terrible disaster. Your friend, Marty.
Well, safe and sound, now, n good old 1955. I&#x27;ve gotta go. Look, George, I&#x27;m telling you George,
if you do not ask Lorraine to that dance, I&#x27;m gonna regret it for the rest of my life. Hey George,
heard you laid out Biff, nice going.
&#x3C;/p&#x3E;
&#x3C;ul&#x3E;
&#x3C;li&#x3E;item 1&#x3C;/li&#x3E;
&#x3C;li&#x3E;
item 2
&#x3C;ul&#x3E;
&#x3C;li&#x3E;child item 1&#x3C;/li&#x3E;
&#x3C;li&#x3E;child item 2&#x3C;/li&#x3E;
&#x3C;/ul&#x3E;
&#x3C;/li&#x3E;
&#x3C;/ul&#x3E;
&#x3C;ol&#x3E;
&#x3C;li&#x3E;item 1&#x3C;/li&#x3E;
&#x3C;li&#x3E;item 2&#x3C;/li&#x3E;
&#x3C;/ol&#x3E;
&#x3C;dl&#x3E;
&#x3C;dt&#x3E;defined title 1&#x3C;/dt&#x3E;
&#x3C;dd&#x3E;defined item 1&#x3C;/dd&#x3E;
&#x3C;/dl&#x3E;
&#x3C;blockquote&#x3E;
I&#x27;m telling you George, if you do not ask Lorraine to that dance, I&#x27;m gonna
regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
&#x3C;/blockquote&#x3E;
&#x3C;mark&#x3E;Mark&#x3C;/mark&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
<div class="content">
<p>
Y'know this time it wasn't my fault. The Doc set all of his clocks twenty-five minutes slow. Listen, this is very important, I forgot my video camera, could you stop by my place and pick it up on your way to the mall? whoa, this is it, this is the part coming up, Doc. I'm really gonna miss you. Doc, about the future- Thank you, don't forget to take a flyer.
</p>
<p>
Dear Doctor Brown, on the night that I go back in time, you will be shot by terrorists. Please take whatever precautions are necessary to prevent this terrible disaster. Your friend, Marty. Well, safe and sound, now, n good old 1955. I've gotta go. Look, George, I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</p>
<ul>
<li>item 1</li>
<li>
item 2
<ul>
<li>child item 1</li>
<li>child item 2</li>
</ul>
</li>
</ul>
<ol>
<li>item 1</li>
<li>item 2</li>
</ol>
<dl>
<dt>defined title 1</dt>
<dd>defined item 1</dd>
</dl>
<blockquote>
I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</blockquote>
<mark>Mark</mark>
</div>
</div>
</div>
</div>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
<div class="bar__end">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

@ -4,10 +4,10 @@
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
Plain UI 0.5 | Simple UI Framework for Apps and Websites
</title>
<title>Plain UI | Lightweight CSS UI Framework for Building Apps and Websites</title>
<meta name="description" content="Lightweight UI Framework for building fast and clean Websites and Apps for Mobile, Tablet and Desktop. Minimal UI-Elements, Functions and Helpers">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
@ -16,36 +16,67 @@
<header class="header">
<div class="bar">
<div class="bar__start">
<div class="m-top-4 m-bottom-4 h4">
Plain UI 0.5
</div>
<h1 class="m-top-4 m-bottom-4 h4">
Plain UI 0.3
</h1>
</div>
<div class="bar__main justify-center">
<div class="tabs tabs--contrast">
<a href="index.html" class="tabs__item ">
Basics
</a>
<a href="components.html" class="tabs__item ">
Components
</a>
<a href="layout.html" class="tabs__item tabs__item--selected">
Layout
</a>
<a href="helpers.html" class="tabs__item ">
Helpers
</a>
</div>
<div class="bar__main justify-end">
<a class="button button--small m-bottom-0" href="#">
Github
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-github"></use>
</svg>
</a>
<a class="button button--small m-left-sm-3 m-bottom-0" href="https://gitea.tentakelfabrik.de/" rel="noopener" target="_blank">
Gitea
<svg class="m-left-3 icon fill-text" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-gitea"></use>
</svg>
</a>
</div>
</div>
</header>
<div class="container">
<div class="container m-top-6">
<div class="grid">
<div class="col-12">
<nav>
<div class="tabs">
<a href="index.html" class="tabs__item">
Basics
</a>
<a href="components.html" class="tabs__item">
Components
</a>
<a href="layout.html" class="tabs__item tabs__item--selected">
Layout
</a>
<a href="helpers.html" class="tabs__item">
Helpers
</a>
</div>
</nav>
</div>
</div>
</div>
<h1 class="highlight m-top-5 m-bottom-5">
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight">
Layout
</h1>
<div class="content">
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Plain UI is currently under development, Styles, Names and Documentation may change until Release!
</p>
</div>
</div>
</div>
</div>
<h2 class="m-top-5">
Grid
@ -169,8 +200,15 @@
<div class="bar__main">
</div>
<div class="bar__end">
<a class="color-text-contrast m-right-4" href="/imprint.html">
Imprint
</a>
<a class="color-text-contrast" href="/private-policy.html">
Privacy Policy
</a>
</div>
</div>
</footer>
</body>
</html

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
(self.webpackChunk_tentakelfabrik_plain_ui=self.webpackChunk_tentakelfabrik_plain_ui||[]).push([[355],{256:()=>{}}]);

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 66 KiB

@ -1,56 +0,0 @@
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Basics
</h1>
<!-- -->
<h3 class="m-top-5">
Heading
</h3>
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
<h6>Heading 6</h6>
<!-- -->
<h3 class="m-top-5">
Content
</h3>
<div class="content">
<p>
Y'know this time it wasn't my fault. The Doc set all of his clocks twenty-five minutes slow. Listen, this is very important, I forgot my video camera, could you stop by my place and pick it up on your way to the mall? whoa, this is it, this is the part coming up, Doc. I'm really gonna miss you. Doc, about the future- Thank you, don't forget to take a flyer.
</p>
<p>
Dear Doctor Brown, on the night that I go back in time, you will be shot by terrorists. Please take whatever precautions are necessary to prevent this terrible disaster. Your friend, Marty. Well, safe and sound, now, n good old 1955. I've gotta go. Look, George, I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</p>
<ul>
<li>item 1</li>
<li>
item 2
<ul>
<li>child item 1</li>
<li>child item 2</li>
</ul>
</li>
</ul>
<ol>
<li>item 1</li>
<li>item 2</li>
</ol>
<dl>
<dt>defined title 1</dt>
<dd>defined item 1</dd>
</dl>
<blockquote>
I'm telling you George, if you do not ask Lorraine to that dance, I'm gonna regret it for the rest of my life. Hey George, heard you laid out Biff, nice going.
</blockquote>
<mark>Mark</mark>
</div>
</div>
</div>
</div>

@ -1,541 +0,0 @@
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Components
</h1>
<!-- -->
<h2>
Badge
</h2>
<span class="badge">
Category
</span>
<span class="badge badge--round">
99+
</span>
<!-- -->
<h2 class="m-top-5">
Bar
</h2>
<div class="bar">
<div class="bar__start">
<button class="button button--transparent">
<svg class="icon fill-text-contrast fill-text-hover marginless" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
<div class="bar__main">
Bar
</div>
</div>
<!-- -->
<h2 class="m-top-5">
Buttons
</h2>
<div>
<button class="button">
Default
</button>
<button class="button">
Icon
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
</button>
<button class="button button--selected">
Selected
</button>
<button class="button" disabled>
Disabled
</button>
</div>
<div>
<button class="button button--danger">
danger
</button>
<button class="button button--success">
success
</button>
<button class="button button--warning">
warning
</button>
<button class="button button--info">
info
</button>
</div>
<div>
<button class="button button--full">
full
</button>
<button class="button button--full button--danger">
danger
</button>
<button class="button button--full button--success">
success
</button>
<button class="button button--full button--warning">
warning
</button>
<button class="button button--full button--info">
info
</button>
</div>
<div>
<button class="button button--outline">
outline
</button>
</div>
<button class="button button--small">
Small
</button>
<!-- -->
<h2 class="m-top-5">
Field
</h2>
<div class="field-group">
<label class="field-label">
Name
<input class="field-text" />
</label>
</div>
<div class="field-group">
<label class="field-label">
Message
<textarea class="field-text"></textarea>
</label>
</div>
<div class="field-group field-group--valid">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
Surname
<input class="field-text" />
</label>
</div>
<div class="field-group field-group--error">
<label class="field-label">
<svg class="icon" aria-hidden="true">
<use class="test" xlink:href="symbol-defs.svg#icon-warning"></use>
</svg>
E-Mail
<input class="field-text" />
</label>
<span class="field-error">
String is not valid
</span>
</div>
<div class="field-group">
<label class="field-label">
Towns
<select class="field-choice">
<option></option>
<option value="lonytown">Lonytown</option>
</select>
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-checkbox-checked"></use>
</svg>
Checkbox
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio A
</label>
<label class="field-label">
<input class="field-choice" type="radio" name="radio" value="true" />
<svg class="icon field-choice__unchecked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle"></use>
</svg>
<svg class="icon field-choice__checked" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-circle-check"></use>
</svg>
Radio B
</label>
</div>
<div class="field-group">
<label class="field-label">
<input class="field-choice" type="checkbox" name="radio" value="true" />
<span class="field-switch"></span>
</label>
</div>
<!-- -->
<h2 class="m-top-5">
Group
</h2>
<div class="group">
<div class="group__item background-color-primary color-text-contrast p-3">
One
</div>
<div class="group__item background-color-primary color-text-contrast p-3">
Two
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2>
Hero
</h2>
</div>
</div>
</div>
<div class="hero">
<img style="max-height: 400px;" src="/image.jpg" />
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2 class="m-top-5">
Icon
</h2>
<svg class="icon" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-check"></use>
</svg>
<svg class="icon fill-danger" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-camera"></use>
</svg>
<svg class="icon fill-success" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-clock"></use>
</svg>
<!-- Loading -->
<h2 class="m-top-5">
Loading
</h2>
<div class="loading">
<span></span>
<span></span>
<span></span>
</div>
<h2 class="m-top-5">
Media
</h2>
<figure class="figure">
<img class="media" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
<!-- modal -->
<h2 class="m-top-5">
Modal
</h2>
<button class="button" onclick="openModal()">
Click me!
</button>
<script type="text/javascript">
function openModal() {
document.querySelector('.modal').classList.add('modal--open')
}
function closeModal() {
document.querySelector('.modal').classList.remove('modal--open')
}
</script>
<div class="modal">
<div class="modal__inner">
<div class="modal__title t-center">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
Delete
</div>
<div class="modal__body center">
Do you really wan't to delete all files?
</div>
<div class="modal__footer">
<button class="button button--outline button--danger" onclick="closeModal()">
Confirm
</button>
<button class="button button--outline float-right" onclick="closeModal()">
Reject
</button>
</div>
</div>
</div>
<!-- panel -->
<h2 class="m-top-5">
Panel
</h2>
<div class="panel">
<div class="bar">
<div class="bar__start">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-expand"></use>
</svg>
</button>
</div>
<div class="bar__main">Panel</div>
<div class="bar__end">
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-edit"></use>
</svg>
</button>
<button type="button" class="button button--transparent">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="panel__body">
<div class="content m-last-child-0">
<p>
Hallo
</p>
</div>
</div>
</div>
<!-- progress -->
<h2 class="m-top-5">
Progress
</h2>
<div class="progress">
<div class="progress__inner" style="width: 20%;"></div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar
</h2>
<button class="button" onclick="openSidebar()">
Click me!
</button>
<script type="text/javascript">
function openSidebar() {
document.querySelector('.sidebar').classList.add('sidebar--open')
}
function closeSidebar() {
document.querySelector('.sidebar').classList.remove('sidebar--open')
}
</script>
<div class="sidebar">
<div class="sidebar__inner">
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebar()">
Close
</button>
</div>
</div>
</div>
<!-- sidebar -->
<h2 class="m-top-5">
Sidebar + Bar
</h2>
<button class="button" onclick="openSidebarBar()">
Click me!
</button>
<script type="text/javascript">
function openSidebarBar() {
document.querySelector('#sidebar-bar').classList.add('sidebar--open')
}
function closeSidebarBar() {
document.querySelector('#sidebar-bar').classList.remove('sidebar--open')
}
</script>
<div id="sidebar-bar" class="sidebar">
<div class="sidebar__inner">
<div class="bar">
<div class="bar__main">
Sidebar
</div>
<div class="bar__end">
<button class="button button--transparent" type="button" onclick="closeSidebarBar()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
<div class="sidebar__body">
</div>
<div class="sidebar__footer">
<button type="button" class="button m-bottom-0" onclick="closeSidebarBar()">
Close
</button>
</div>
</div>
</div>
<!-- table -->
<h2 class="m-top-5">
Table
</h2>
<table class="table table--striped table--hover">
<thead>
<tr class="table__tr">
<th class="table__th">A</th>
<th class="table__th">B</th>
<th class="table__th">C</th>
<th class="table__th">D</th>
</tr>
</thead>
<tbody>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
<tr class="table__tr">
<td class="table__td">1</td>
<td class="table__td">2</td>
<td class="table__td">3</td>
<td class="table__td">4</td>
</tr>
</tbody>
</table>
<!--- tabs -->
<h2 class="m-top-5">
Tabs
</h2>
<div class="tabs">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
<h2 class="m-top-5">
Tabs + Bar
</h2>
<div class="bar">
<div class="tabs tabs--contrast">
<a class="tabs__item tabs__item--selected">
Tab A
</a>
<a class="tabs__item">
Tab B
</a>
<a class="tabs__item">
Tab C
</a>
</div>
</div>
<!-- toast -->
<h2 class="m-top-5">
Toast
</h2>
<script type="text/javascript">
function addToast() {
document.querySelector('#toast').style.display = 'block'
setTimeout(function() {
document.querySelector('#toast .toast').classList.add('toast--animation')
}, 100)
}
function closeToast() {
setTimeout(function() {
document.querySelector('#toast').style.display = 'none'
}, 1000)
document.querySelector('#toast .toast').classList.remove('toast--animation')
}
</script>
<button class="button" onclick="addToast()">
Click me!
</button>
<div id="toast" class="toast-wrapper" style="display: none;">
<div class="toast toast--danger">
<div class="toast__icon">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-warning"></use>
</svg>
</div>
<div class="toast__body">
Warning! Action not Working!
</div>
<button class="toast__button" onclick="closeToast()">
<svg class="icon fill-text-contrast" aria-hidden="true">
<use xlink:href="/symbol-defs.svg#icon-close"></use>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>

@ -1,20 +0,0 @@
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Helpers
</h1>
<div class="panel panel--border-highlight border-color-danger m-bottom-4">
<div class="panel__body">
<div class="content m-last-child-0">
<p>
@TODO Documentation
</p>
</div>
</div>
</div>
</div>
</div>
</div>

@ -1,124 +0,0 @@
<div class="container">
<div class="grid">
<div class="col-12">
<h1 class="highlight m-top-5 m-bottom-5">
Layout
</h1>
<h2 class="m-top-5">
Grid
</h2>
<div class="panel panel--border-highlight border-color-info m-bottom-4">
<div class="panel__body">
<div class="content m-bottom-last-child-0">
<p>
Plain UI uses the <a href="https://reflexgrid.com/" target="_blank" rel=“noopener“>Reflex Grid</a>,
there will be a full integration of this Grid for better Support.
</p>
</div>
</div>
</div>
<h2 class="m-top-5">
Masonry
</h3>
<div class="content">
<code>&lt;div class=&quot;masonry&quot;&gt;
&lt;figure class=&quot;masonry__item&quot;&gt;
&lt;img class=&quot;media object-fit-cover h-100&quot; src=&quot;/image.jpg&quot; /&gt;
&lt;/figure&gt;
&lt;/div&gt;
</code>
</div>
<div class="masonry">
<figure class="masonry__item">
<img class="media object-fit-cover h-100" src="/image.jpg" />
</figure>
<figure class="masonry__item">
<img class="media object-fit-cover h-100" src="/image.jpg" />
</figure>
<figure class="masonry__item">
<img class="media object-fit-cover h-100" src="/image.jpg" />
</figure>
<figure class="masonry__item">
<img class="media object-fit-cover h-100" src="/image.jpg" />
</figure>
<figure class="masonry__item">
<img class="media object-fit-cover h-100" src="/image.jpg" />
</figure>
</div>
</div>
</div>
</div>
<div class="container">
<div class="grid">
<div class="col-12">
<h2>Slider</h2>
<div class="content">
<code>&#x3C;div class=&#x22;slider&#x22;&#x3E;
&#x3C;div class=&#x22;slider__inner&#x22;&#x3E;
&#x3C;div class=&#x22;slider__item w-col-12&#x22;&#x3E;
&#x3C;figure class=&#x22;figure w-col-12&#x22;&#x3E;
&#x3C;img class=&#x22;media&#x22; src=&#x22;/image.jpg&#x22; /&#x3E;
&#x3C;figcaption class=&#x22;figure__caption&#x22;&#x3E;
food truck yr franzen pabst
&#x3C;/figcaption&#x3E;
&#x3C;/figure&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;slider__item w-col-12&#x22;&#x3E;
&#x3C;figure class=&#x22;figure w-col-12&#x22;&#x3E;
&#x3C;img class=&#x22;media&#x22; src=&#x22;/image.jpg&#x22; /&#x3E;
&#x3C;figcaption class=&#x22;figure__caption&#x22;&#x3E;
food truck yr franzen pabst
&#x3C;/figcaption&#x3E;
&#x3C;/figure&#x3E;
&#x3C;/div&#x3E;
&#x3C;div class=&#x22;slider__item w-col-12&#x22;&#x3E;
&#x3C;figure class=&#x22;figure w-col-12&#x22;&#x3E;
&#x3C;img class=&#x22;media&#x22; src=&#x22;/image.jpg&#x22; /&#x3E;
&#x3C;figcaption class=&#x22;figure__caption&#x22;&#x3E;
food truck yr franzen pabst
&#x3C;/figcaption&#x3E;
&#x3C;/figure&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
&#x3C;/div&#x3E;
</code>
</div>
</div>
</div>
</div>
<div class="slider">
<div class="slider__inner">
<div class="slider__item w-col-12">
<figure class="figure w-col-12">
<img class="media h-70 object-fit-cover" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
</div>
<div class="slider__item w-col-12">
<figure class="figure w-col-12">
<img class="media h-70 object-fit-cover" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
</div>
<div class="slider__item w-col-12">
<figure class="figure w-col-12">
<img class="media h-70 object-fit-cover" src="/image.jpg" />
<figcaption class="figure__caption">
food truck yr franzen pabst
</figcaption>
</figure>
</div>
</div>
</div>

@ -1,53 +0,0 @@
<!doctype html>
<html lang="en_EN">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
<%= htmlWebpackPlugin.options.strings.title %> <%= htmlWebpackPlugin.options.strings.version %> | <%= htmlWebpackPlugin.options.strings.description %>
</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="plain-ui.css">
</head>
<body class="overflow-x-hidden">
<header class="header">
<div class="bar">
<div class="bar__start">
<div class="m-top-4 m-bottom-4 h4">
<%= htmlWebpackPlugin.options.strings.title %> <%= htmlWebpackPlugin.options.strings.version %>
</div>
</div>
<div class="bar__main justify-center">
<div class="tabs tabs--contrast">
<a href="index.html" class="tabs__item <% if (htmlWebpackPlugin.options.current === 'index.html') { %>tabs__item--selected<% } %>">
Basics
</a>
<a href="components.html" class="tabs__item <% if (htmlWebpackPlugin.options.current === 'components.html') { %>tabs__item--selected<% } %>">
Components
</a>
<a href="layout.html" class="tabs__item <% if (htmlWebpackPlugin.options.current === 'layout.html') { %>tabs__item--selected<% } %>">
Layout
</a>
<a href="helpers.html" class="tabs__item <% if (htmlWebpackPlugin.options.current === 'helpers.html') { %>tabs__item--selected<% } %>">
Helpers
</a>
</div>
</div>
</div>
</header>
<%= htmlWebpackPlugin.options.content %>
<footer class="site-footer m-top-5">
<div class="bar">
<div class="bar__main">
</div>
</div>
</footer>
</body>
</html

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>gitea</title>
<path fill="#609926" d="M5.581 7.228c-2.46-0.005-5.755 1.559-5.573 5.48 0.284 6.125 6.56 6.693 9.068 6.743 0.275 1.149 3.227 5.112 5.412 5.32h9.573c5.741-0.381 10.040-17.363 6.853-17.427-5.271 0.248-8.395 0.373-11.073 0.395v5.3l-0.835-0.369-0.005-4.928c-3.075-0.001-5.781-0.144-10.919-0.397-0.643-0.004-1.539-0.113-2.501-0.116zM5.929 9.395h0.293c0.349 3.14 0.917 4.976 2.067 7.781-2.933-0.347-5.429-1.199-5.888-4.38-0.237-1.647 0.563-3.365 3.528-3.401zM17.339 12.481c0.2 0.003 0.404 0.040 0.596 0.128l0.999 0.431-0.716 1.305c-0.002 0-0.004-0-0.007-0-0.113 0-0.221 0.019-0.321 0.053l0.006-0.002c-0.349 0.114-0.593 0.406-0.593 0.749 0 0.097 0.019 0.189 0.055 0.275l-0.002-0.006c0.037 0.089 0.088 0.166 0.151 0.233l-0.001-0.001-1.235 2.248c-0.107 0.002-0.208 0.020-0.302 0.052l0.006-0.002c-0.349 0.114-0.593 0.406-0.593 0.749 0 0.097 0.019 0.189 0.055 0.275l-0.002-0.006c0.128 0.31 0.457 0.527 0.843 0.527 0.109 0 0.213-0.017 0.31-0.049l-0.006 0.002c0.348-0.114 0.592-0.406 0.592-0.749 0-0.097-0.020-0.19-0.056-0.277l0.002 0.006c-0.048-0.115-0.119-0.213-0.211-0.293l-0-0 1.203-2.189c0.029 0.003 0.062 0.005 0.095 0.005 0.106 0 0.207-0.016 0.302-0.046l-0.006 0.002c0.109-0.036 0.204-0.087 0.285-0.15l-0.001 0.001c0.464 0.195 0.844 0.353 1.117 0.488 0.411 0.203 0.556 0.337 0.6 0.487 0.044 0.147-0.004 0.429-0.236 0.925-0.173 0.369-0.46 0.893-0.799 1.511-0.006-0-0.013-0-0.020-0-0.113 0-0.222 0.019-0.321 0.053l0.006-0.002c-0.349 0.114-0.593 0.406-0.593 0.749 0 0.097 0.019 0.189 0.055 0.275l-0.002-0.006c0.128 0.31 0.457 0.527 0.843 0.527 0.109 0 0.213-0.017 0.31-0.049l-0.006 0.002c0.348-0.114 0.592-0.406 0.592-0.749 0-0.097-0.019-0.19-0.055-0.275l0.002 0.006c-0.043-0.104-0.105-0.194-0.183-0.27l0.001 0.001c0.335-0.611 0.623-1.136 0.808-1.531 0.251-0.536 0.381-0.935 0.267-1.32s-0.467-0.636-0.933-0.867c-0.307-0.151-0.689-0.311-1.147-0.503 0.001-0.015 0.002-0.033 0.002-0.050 0-0.096-0.019-0.188-0.054-0.274l0.002 0.006c-0.045-0.108-0.11-0.201-0.194-0.279l0 0 0.704-1.284 3.899 1.684c0.704 0.305 0.995 1.053 0.653 1.68l-2.68 4.907c-0.343 0.625-1.184 0.884-1.888 0.58l-5.516-2.384c-0.704-0.304-0.996-1.053-0.653-1.68l2.68-4.905c0.235-0.431 0.707-0.687 1.207-0.707z"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>github</title>
<path d="M16 0.396c-8.84 0-16 7.164-16 16 0 7.071 4.584 13.067 10.94 15.18 0.8 0.151 1.093-0.344 1.093-0.769 0-0.38-0.013-1.387-0.020-2.72-4.451 0.965-5.389-2.147-5.389-2.147-0.728-1.847-1.78-2.34-1.78-2.34-1.449-0.992 0.112-0.972 0.112-0.972 1.607 0.112 2.451 1.648 2.451 1.648 1.427 2.447 3.745 1.74 4.66 1.331 0.144-1.035 0.556-1.74 1.013-2.14-3.553-0.4-7.288-1.776-7.288-7.907 0-1.747 0.62-3.173 1.647-4.293-0.18-0.404-0.72-2.031 0.14-4.235 0 0 1.34-0.429 4.4 1.64 1.28-0.356 2.64-0.532 4-0.54 1.36 0.008 2.72 0.184 4 0.54 3.040-2.069 4.38-1.64 4.38-1.64 0.86 2.204 0.32 3.831 0.16 4.235 1.020 1.12 1.64 2.547 1.64 4.293 0 6.147-3.74 7.5-7.3 7.893 0.56 0.48 1.080 1.461 1.080 2.96 0 2.141-0.020 3.861-0.020 4.381 0 0.42 0.28 0.92 1.1 0.76 6.401-2.099 10.981-8.099 10.981-15.159 0-8.836-7.164-16-16-16z"></path>
</svg>

After

Width:  |  Height:  |  Size: 975 B

@ -2,9 +2,9 @@
* functions
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/crispy-css
*
*/

@ -2,9 +2,9 @@
* mixins
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui-css
*
*/
@ -56,73 +56,73 @@
*/
@mixin media-xs() {
@media only screen and (min-width: $grid__xs) {
@media only screen and (min-width: $breakpoint__xs) {
@content;
}
}
@mixin media-sm() {
@media only screen and (min-width: $grid__sm) {
@media only screen and (min-width: $breakpoint__sm) {
@content;
}
}
@mixin media-md() {
@media only screen and (min-width: $grid__md) {
@media only screen and (min-width: $breakpoint__md) {
@content;
}
}
@mixin media-lg() {
@media only screen and (min-width: $grid__lg) {
@media only screen and (min-width: $breakpoint__lg) {
@content;
}
}
@mixin media-xlg() {
@media only screen and (min-width: $grid__xlg) {
@media only screen and (min-width: $breakpoint__xlg) {
@content;
}
}
@mixin media-xxs-only() {
@media only screen and (max-width: $grid__xs) {
@media only screen and (max-width: $breakpoint__xs) {
@content;
}
}
@mixin media-xxs-only() {
@media only screen and (max-width: $grid__xs - 1) {
@media only screen and (max-width: $breakpoint__xs - 1) {
@content;
}
}
@mixin media-xs-only() {
@media only screen and (min-width: $grid__xs) and (max-width: $grid__sm - 1) {
@media only screen and (min-width: $breakpoint__xs) and (max-width: $breakpoint__sm - 1) {
@content;
}
}
@mixin media-sm-only() {
@media only screen and (min-width: $grid__sm) and (max-width: $grid__md - 1) {
@media only screen and (min-width: $breakpoint__sm) and (max-width: $breakpoint__md - 1) {
@content;
}
}
@mixin media-md-only() {
@media only screen and (min-width: $grid__md) and (max-width: $grid__lg - 1) {
@media only screen and (min-width: $breakpoint__md) and (max-width: $breakpoint__lg - 1) {
@content;
}
}
@mixin media-lg-only() {
@media only screen and (min-width: $grid__lg) and (max-width: $grid__xlg - 1) {
@media only screen and (min-width: $breakpoint__lg) and (max-width: $breakpoint__xlg - 1) {
@content;
}
}
@mixin media-xlg-only() {
@media only screen and (min-width: $grid__xlg) {
@media only screen and (min-width: $breakpoint__xlg) {
@content;
}
}
@ -230,7 +230,7 @@
*
* @param {z-index}
* @param {color}
*
*
*/
@mixin overlay($z-index: 0, $color: transparent) {

@ -3,59 +3,23 @@
*
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui-css
*
*/
/**
* breakpoints
*
*/
/**
* grid
*
*/
$grid__columns: 12 !default; // number of columns
$grid__xs: 576px !default;
$grid__sm: 768px !default;
$grid__md: 992px !default;
$grid__lg: 1200px !default;
$grid__xlg: 1600px !default;
$grid__xxs-max: ($grid__xs - 1);
$grid__xs-max: ($grid__sm - 1);
$grid__sm-max: ($grid__md - 1);
$grid__md-max: ($grid__lg - 1);
$grid__lg-max: ($grid__xlg - 1);
$grid__breakpoints: (
xxs: 0px,
xs: $grid__xs,
sm: $grid__sm,
md: $grid__md,
lg: $grid__lg,
xlg: $grid__xlg
);
$grid__spacing: 15px !default;
// Custom properties so others can reference the variables.
:root {
--grid-columns: #{ $grid__columns };
--grid-grid-spacing: #{ $grid__spacing };
--grid-xs: #{ $grid__xs };
--grid-sm: #{ $grid__sm };
--grid-md: #{ $grid__md };
--grid-lg: #{ $grid__lg };
--grid-xlg: #{ $grid__xlg };
--grid-xxs-max: #{ $grid__xxs-max };
--grid-xs-max: #{ $grid__xs-max };
--grid-sm-max: #{ $grid__sm-max };
--grid-md-max: #{ $grid__md-max };
--grid-lg-max: #{ $grid__lg-max };
}
$breakpoint__xs : 576px !default;
$breakpoint__sm : 768px !default;
$breakpoint__md : 992px !default;
$breakpoint__lg : 1200px !default;
$breakpoint__xlg: 1600px !default;
/**
@ -70,7 +34,7 @@ $font-weight: normal !default;
$font-size: 0.9rem !default;
$font-size-breakpoints: (
$grid__md: 1rem
$breakpoint__md: 1rem
) !default;
$font-sizes: (
@ -83,7 +47,7 @@ $font-sizes: (
$line-height: 1.618;
$line-height__breakpoints: (
$grid__md: 1.8
$breakpoint__md: 1.8
) !default;
@ -158,7 +122,7 @@ $colors: (
$margin: 0 0 1rem !default;
$margin-breakpoints: (
$grid__md: 0 0 1.2rem
$breakpoint__md: 0 0 1.2rem
) !default;
@ -169,7 +133,7 @@ $margin-breakpoints: (
$padding: 0.6rem 0.8rem !default;
$padding-breakpoints: (
$grid__md: 0.7rem 1rem 0.9rem
$breakpoint__md: 0.7rem 1rem 0.9rem
) !default;

@ -3,9 +3,9 @@
* A
* </span>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -8,9 +8,9 @@
* </div>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://gitea.com/tentakelfabrik/plain-ui
*
*/

@ -1,9 +1,9 @@
/**
* Button
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/
@ -79,7 +79,8 @@
margin: $margin;
padding: 0.5rem 1.3rem;
padding: 0 1.3rem;
min-height: 2.8rem;
width: 100%;
@include media-sm() {
@ -87,7 +88,6 @@
}
&--small {
padding: 0.3rem 1.1rem;
font-size: 0.8rem;
}

@ -1,10 +1,7 @@
/**
*
* fields
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*
*/
@ -12,7 +9,7 @@
margin: $margin;
&--valid {
.field-text {
input.field-text, textarea.field-text {
border-color: var(--success);
}
@ -22,7 +19,7 @@
}
&--error {
.field-text {
input.field-text, textarea.field-text {
border-color: var(--danger);
}
@ -45,7 +42,7 @@
}
}
.field-text, .field-choice {
input.field-text, textarea.field-text, select.field-choice {
font-family: var(--font-family);
font-size: 0.95rem;
@ -62,7 +59,7 @@
}
}
.field-text {
input.field-text, textarea.field-text {
padding: 0.8em 1.1em;
}
@ -77,17 +74,21 @@ textarea.field-text {
*
*/
.field-choice {
select.field-choice {
appearance: none;
padding: 0.8em;
background-image: linear-gradient(to right, $color__active, $color__active);
background-position: 100%;
background-size: 1.5rem 100%;
background-image:
linear-gradient(to right, $color__active, $color__active);
background-position:
100%;
background-size:
1.5rem 100%;
background-repeat: no-repeat;
&:active, &:focus {
background-image: linear-gradient(to right, $color__border, $color__border);
background-image:
linear-gradient(to right, $color__border, $color__border);
}
}
@ -109,8 +110,8 @@ textarea.field-text {
*
*/
[type=checkbox].field-choice,
[type=radio].field-choice {
input[type=checkbox].field-choice,
input[type=radio].field-choice {
position: relative;
display: none;
@ -174,7 +175,7 @@ svg.field-choice__checked {
}
}
[type=checkbox].field-choice {
input[type=checkbox].field-choice {
~ .field-switch:after {
left: 0;
}

@ -6,9 +6,9 @@
* </span>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -3,9 +3,9 @@
* <img src="image.png" alt="image" />
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -1,9 +1,9 @@
/**
*
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -6,9 +6,9 @@
* </div>
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -7,9 +7,9 @@
* </figure>
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -6,11 +6,6 @@
* </figcaption>
* </figure>
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
.modal {

@ -1,9 +1,9 @@
/**
*
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -3,9 +3,9 @@
* <div class="progress__inner" style="width: 20%"></div>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -8,9 +8,9 @@
* </div>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://gitea.com/tentakelfabrik/plain-ui
*
*/

@ -1,25 +1,26 @@
/**
*
* table
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
$table__padding-breakpoints: (
$grid__md: 0.5em 1.25em
$breakpoint__md: 0.5em 1.25em
) !default;
$table__striped-background-color: lighten($color__primary, 65%) !default;
$table__hover-background-color: lighten($color__primary, 10%) !default;
.table {
width: 100%;
border: $border;
background: var(--white);
&--striped {
tr {
&:nth-child(even) {
background-color: lighten($color__primary, 75%);
}
}
}
&--scroll {
overflow-x: auto;
}
@ -42,23 +43,12 @@ $table__hover-background-color: lighten($color__primary, 10%) !default;
background-color: var(--background);
}
// other background-color for even td inside tr
&--striped {
.table__tr {
&:nth-child(even) {
.table__td {
background-color: $table__striped-background-color;
}
}
}
}
// if hover tr change background color for all tr inside
&--hover {
.table__tr:hover {
background-color: lighten($color__primary, 10%);
.table__td {
color: white;
background-color: $table__hover-background-color;
}
}
}

@ -1,10 +1,6 @@
/**
*
* tabs
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*
*/

@ -17,9 +17,9 @@
* </div>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://gitea.com/tentakelfabrik/plain-ui
*
*/

@ -0,0 +1,14 @@
/**
* Container
*
*
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://github.com/tentakelfabrik/crispy-css
*
*/
.container--app {
max-width: 100%;
padding: 15px 30px;
}

@ -1,10 +1,10 @@
/**
* Content
* Heading
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/crispy-css
*
*/

@ -2,9 +2,9 @@
* Heading
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/crispy-css
*
*/
@ -31,7 +31,7 @@ $heading__font-sizes: (
) !default;
$heading__font-sizes-breakpoints: (
$grid__md: (
$breakpoint__md: (
'h1': 2.75rem,
'h2': 2.5rem,
'h3': 2rem,

@ -3,9 +3,9 @@
*
* Thanks to https://necolas.github.io/normalize.css/, use a lot from them
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui
*
*/

@ -1,10 +1,8 @@
/**
* colors
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*
*
*/
@ -21,10 +19,6 @@
.fill-#{$class} {
fill: var(#{$name});
svg {
fill: var(#{$name});
}
}
}
@ -32,10 +26,8 @@
@each $name, $color in $colors {
$class: str-replace($name, '--', '');
.fill-#{$class}-hover {
.hover-fill-#{$class} {
&:hover {
fill: var(#{$name});
svg {
fill: var(#{$name});
}

@ -1,10 +1,7 @@
/**
* core
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*
*/

@ -1,12 +1,3 @@
/**
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
.object-contain {
object-fit: contain;
}

@ -4,9 +4,6 @@
* Width and Height Classes,
* Sizes with percentage will calculate with the Reflex Grid
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
@ -75,14 +72,14 @@ $sizing_steps: 99 !default;
.h-auto { height: auto; }
@include sizing_breakpoints('h', 'height', 'auto', auto);
@for $i from 1 through $grid__columns
@for $i from 1 through $reflex-columns
{
$value: percentage(($i / $grid__columns));
$value: percentage(($i / $reflex-columns));
@include sizing('w-col', 'width', $i, $value);
@include sizing_breakpoints('w-col', 'width', $i, $value);
$value: percentage(($i / $grid__columns));
$value: percentage(($i / $reflex-columns));
@include sizing('h-col', 'height', $i, $value);
@include sizing_breakpoints('h-col', 'height', $i, $value);

@ -3,9 +3,6 @@
*
* creates margin and padding for each direction and for each breakpont
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/

@ -1,102 +1,62 @@
/**
* typography
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
@mixin media-add-typography($class) {
.#{$class} {
@content;
}
@include media-xs() {
.#{$class}-xs {
@content;
}
}
@include media-sm() {
.#{$class}-sm {
@content;
}
}
@include media-md() {
.#{$class}-md {
@content;
}
}
@include media-lg() {
.#{$class}-lg {
@content;
}
}
@include media-xlg() {
.#{$class}-xlg {
@content;
}
}
}
@include media-add-typography('left') {
.left {
text-align: left;
}
@include media-add-typography('right') {
.right {
text-align: right;
}
@include media-add-typography('center') {
.center {
text-align: center;
}
@include media-add-typography('justify') {
.justify {
text-align: justify;
}
@include media-add-typography('uppercase') {
.uppercase {
text-transform: uppercase;
}
@include media-add-typography('lowercase') {
.lowercase {
text-transform: lowercase;
}
@include media-add-typography('crossed') {
.crossed {
text-decoration: line-through;
}
@include media-add-typography('underline') {
.underline {
text-decoration: underline;
}
@include media-add-typography('capitalize') {
.capitalize {
text-transform: capitalize;
}
@include media-add-typography('italic') {
.italic {
font-style: italic;
}
@include media-add-typography('light') {
.light {
font-weight: lighter;
}
@include media-add-typography('normal') {
.normal {
font-weight: normal;
}
@include media-add-typography('medium') {
.medium {
font-weight: medium;
}
@include media-add-typography('bold') {
.bold {
font-weight: bolder;
}
@ -142,26 +102,26 @@
*
*/
@include media-add-typography('white-space-normal') {
.white-space-normal {
white-space: normal;
}
@include media-add-typography('white-space-nowrap') {
.white-space-nowrap {
white-space: nowrap;
}
@include media-add-typography('white-space-pre') {
.white-space-pre {
white-space: pre;
}
@include media-add-typography('white-space-preline') {
.white-space-preline {
white-space: preline;
}
@include media-add-typography('white-space-preline') {
.white-space-preline {
white-space: pre-line;
}
@include media-add-typography('white-space-prewrap') {
.white-space-prewrap {
white-space: pre-wrap;
}

@ -2,9 +2,9 @@
* visibility
*
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/plain-ui-css
*
*/

@ -0,0 +1,3 @@
@import 'reflex-grid';
$legacy-support: false;

@ -1,233 +0,0 @@
/**
* grid
*
* This Grid is mainly the Reflex Grid from Lee Gordon https://reflexgrid.com/, he has
* done a great work, for i few changes it was needed to integrated
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
@import
'grid/mixins',
'grid/helpers';
.container,
.container-full {
@include box-sizing(border-box);
width: 100%;
margin-right: auto;
margin-left: auto;
padding-right: ($grid__spacing * 2);
padding-left: ($grid__spacing * 2);
.grid {
margin-right: -$grid__spacing;
margin-left: -$grid__spacing;
}
}
.container {
@media (min-width: $grid__xs) {
max-width: $grid__xs;
}
@media (min-width: $grid__sm) {
max-width: $grid__sm;
}
@media (min-width: $grid__md) {
max-width: $grid__md;
}
@media (min-width: $grid__lg) {
max-width: $grid__lg;
}
@media (min-width: $grid__xlg) {
max-width: $grid__xlg;
}
}
.grid {
display: block;
@include box-sizing(border-box);
@include display-flex();
@include flex-wrap();
padding: 0;
margin: 0 auto;
position: relative;
&::after,
&::before {
@include box-sizing(border-box);
}
// handle when lists are used as a grid
list-style-type: none;
}
.col-item {
@include box-sizing(border-box);
position: relative;
width: 100%;
vertical-align: top;
padding: $grid__spacing;
&::after,
&::before {
@include box-sizing(border-box);
}
// handle grids nested in columns
.grid {
@include flex(1, 1, auto);
margin: -$grid__spacing;
}
}
@for $i from 1 through $grid__columns {
.col-#{$i} {
@extend .col-item;
}
}
/**
* grid generation
*
*
*/
@include grid-make(col-);
@media (min-width: $grid__xs) {
@include grid-make(col-xs-);
}
@media (min-width: $grid__sm) {
@include grid-make(col-sm-);
}
@media (min-width: $grid__md) {
@include grid-make(col-md-);
}
@media (min-width: $grid__lg) {
@include grid-make(col-lg-);
}
@media (min-width: $grid__xlg) {
@include grid-make(col-xlg-);
}
/**
* col-auto
*
*
*/
.col-auto {
@extend .col-item;
@include grid-setup-auto-cols();
}
.col-xs-auto, .col-sm-auto, .col-lg-auto, .col-xlg-auto {
@extend .col-item;
}
@media (min-width: $grid__xs) {
.col-xs-auto {
@include grid-setup-auto-cols();
}
}
@media (min-width: $grid__sm) {
.col-sm-auto {
@include grid-setup-auto-cols();
}
}
@media (min-width: $grid__md) {
.col-md-auto {
@include grid-setup-auto-cols();
}
}
@media (min-width: $grid__lg) {
.col-lg-auto {
@include grid-setup-auto-cols();
}
}
@media (min-width: $grid__xlg) {
.col-xlg-auto {
@include grid-setup-auto-cols();
}
}
/**
* order helpers generation
*
*
*/
@include grid-make-order-helpers();
@media (min-width: $grid__xs) {
@include grid-loop-order-helpers($grid__columns, '-xs');
}
@media (min-width: $grid__sm) {
@include grid-loop-order-helpers($grid__columns, '-sm');
}
@media (min-width: $grid__md) {
@include grid-loop-order-helpers($grid__columns, '-md');
}
@media (min-width: $grid__lg) {
@include grid-loop-order-helpers($grid__columns, '-lg');
}
@media (min-width: $grid__xlg) {
@include grid-loop-order-helpers($grid__columns, '-xlg');
}
/**
* offset helpers generation
*
*
*/
@include grid-make-offset-helpers();
@media (min-width: $grid__xs) {
@include grid-loop-offset-helpers($grid__columns - 1, '-xs');
}
@media (min-width: $grid__sm) {
@include grid-loop-offset-helpers($grid__columns - 1, '-sm');
}
@media (min-width: $grid__md) {
@include grid-loop-offset-helpers($grid__columns - 1, '-md');
}
@media (min-width: $grid__lg) {
@include grid-loop-offset-helpers($grid__columns - 1, '-lg');
}
@media (min-width: $grid__xlg) {
@include grid-loop-offset-helpers($grid__columns - 1, '-xlg');
}

@ -7,9 +7,9 @@
* </div>
* </div>
*
* @author Björn Hase, me@herr-hase.wtf
* @author Björn Hase, Tentakelfabrik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
* @link https://github.com/tentakelfabrik/crispy-css
*
*/

@ -1,17 +1,10 @@
/**
* slider
*
* <div class="slider">
* <div class="slider__inner">
* <div class="slider__item w-10"></div>
* </div>
* </div>
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
.slider {

@ -1,234 +0,0 @@
/**
* grid: helpers
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
.wrap {
@include flex-wrap(wrap);
}
.no-wrap {
@include flex-wrap(nowrap);
// This is mostly needed to stop the grid contents overflowing in the
// ie10 implementation of flexbox but it can't hurt in other browsers
// as it is the desired behaviour of non wrapping flex items
[class*="col-"] {
@include flex-shrink(1);
}
}
.wrap-reverse {
@include flex-wrap(wrap-reverse);
}
/**
* flex-direction
*
*/
.direction-row {
@include flex-direction(row);
}
.direction-row-reverse {
@include flex-direction(row-reverse);
}
.direction-column {
@include flex-direction(column);
}
.direction-column-reverse {
@include flex-direction(column-reverse);
}
/**
* align items (cross axis)
*
*/
.align-start {
@include align-items(flex-start);
}
.align-end {
@include align-items(flex-end);
}
.align-center {
@include align-items(center);
}
.align-baseline {
@include align-items(baseline);
}
/**
* align content (cross axis)
*
*/
.align-content-start {
@include align-content(flex-start);
}
.align-content-end {
@include align-content(flex-end);
// fallback to legacy vertical-align
[class*="col-"] {
vertical-align: bottom;
}
}
.align-content-center {
@include align-content(center);
}
.align-content-space-between {
@include align-content(space-between);
}
.align-content-space-around {
@include align-content(space-around);
}
/**
* align-self
*
*/
.align-self-stretch {
@include align-self(stretch);
}
.align-self-start {
@include align-self(flex-start);
}
.align-self-end {
@include align-self(flex-end);
vertical-align: bottom;
}
.align-self-center {
@include align-self(center);
vertical-align: middle;
}
.align-self-baseline {
@include align-self(baseline);
vertical-align: baseline;
}
/**
* justify-content (main axis)
*
*/
.justify-start {
@include justify-content-start();
}
.justify-end {
@include justify-content-end();
}
.justify-center {
@include justify-content-center();
}
.justify-space-between {
@include justify-content-space-between();
}
.justify-space-around {
@include justify-content-space-around();
}
/**
* cosmetic grid modifiers
*
*/
// Removes internal padding from all columns in a grid
.grid-bleed {
[class*="col-"] {
padding: 0;
}
}
/**
* col modifiers
*
*/
// Makes a column element into a flexbox column
.col-grid {
@include display-flex();
@include flex-direction(column);
&.direction-row {
@include flex-direction(row);
}
}
// Removes internal padding from all columns in a grid
.col-bleed {
padding: 0;
}
// Removes horizontal padding from all columns in a grid
.col-bleed-x {
padding: $grid__spacing 0;
}
// Removes vertical padding from all columns in a grid
.col-bleed-y {
padding: 0 $grid__spacing;
}
/**
* col-grid contents
*
*/
.flex-img {
display: block;
@include flex(0, 0, auto);
max-width: 100%;
height: auto;
width: 100%;
}
.flex-footer {
width: 100%;
margin-top: auto;
margin-bottom: 0;
> :last-child {
margin-bottom: 0;
}
}
/**
* Responsive visibility modifiers
*
*/
@include grid-responsive-visibility-helpers();

@ -1,360 +0,0 @@
/**
* grid: mixin
*
*
* @author Björn Hase, me@herr-hase.wtf
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://gitea.node001.net/tiny-components/plain-ui.git
*
*/
@mixin grid-make($class) {
@include grid-loop-columns($grid__columns, $class, width);
}
@mixin grid-calc-columns($index, $class, $type) {
@if $type == width and $index > 0 {
.#{$class}#{$index} {
width: percentage(($index / $grid__columns));
}
}
}
@mixin grid-loop-columns($index, $class, $type) {
@if $index >= 0 {
@include grid-calc-columns($index, $class, $type);
// next iteration
@include grid-loop-columns(($index - 1), $class, $type);
}
}
// defaults for auto cols
@mixin grid-setup-auto-cols() {
@include flex(1, 0, 0px); // a unit on last value is required by IE10-11
}
@mixin grid-reset-text-align() {
//
// We want to reset any text-align properties set by the grid
// (required for the inline-block fallback)
// but we don't want to override any text-align properties
// set on the individual col-x element
// or on any of it's child elements
//
// 1) set to left by default (works everywhere)
// 2) set to start (respects right to left text)
//
//
text-align: left;
text-align: start;
-moz-text-align-last: left;
-moz-text-align-last: start;
text-align-last: left;
text-align-last: start;
}
/**
* order class generation mixins
*
*/
@mixin order($order: 0) {
-webkit-order: $order;
order: $order;
}
@mixin grid-make-order-helpers() {
@include grid-loop-order-helpers($grid__columns);
}
@mixin grid-loop-order-helpers($index, $breakpoint: null) {
@if $index >= 0 {
.order#{$breakpoint}-#{$index} {
@include order($index);
}
// next iteration
@include grid-loop-order-helpers(($index - 1), $breakpoint);
}
}
/**
* offset class generation mixins
*
*/
@mixin grid-offset($index: 0) {
$offset: ($index / $grid__columns);
// convert to percentage only if not zero
@if $offset != 0 {
$offset: percentage($offset);
}
margin-left: $offset;
}
@mixin grid-make-offset-helpers() {
@include grid-loop-offset-helpers($grid__columns - 1);
}
@mixin grid-loop-offset-helpers($index, $breakpoint: null) {
@if $index > 0 and $breakpoint == null {
.offset#{$breakpoint}-#{$index} {
@include grid-offset($index);
}
// next iteration
@include grid-loop-offset-helpers(($index - 1), $breakpoint);
} @else if $index >= 0 and $breakpoint != null {
.offset#{$breakpoint}-#{$index} {
@include grid-offset($index);
}
// next iteration
@include grid-loop-offset-helpers(($index - 1), $breakpoint);
}
}
/**
* modifier mixins
*
*/
@mixin display-flex() {
display: -webkit-flex;
display: flex;
}
@mixin flex($grow: 0, $shrink: 1, $basis: auto) {
-webkit-flex: $grow $shrink $basis;
flex: $grow $shrink $basis;
}
@mixin flex-grow($grow:1) {
-webkit-flex-grow: $grow;
flex-grow: $grow;
}
@mixin flex-shrink($shrink:1) {
-webkit-flex-shrink: $shrink;
flex-shrink: $shrink;
}
@mixin flex-basis($basis:auto) {
-webkit-flex-basis: $basis;
flex-basis: $basis;
}
@mixin flex-flow($direction: row, $wrap: nowrap) {
-webkit-flex-flow: $direction $wrap;
flex-flow: $direction $wrap;
}
@mixin flex-wrap($wrap: wrap) {
-webkit-flex-wrap: $wrap;
flex-wrap: $wrap;
}
@mixin flex-direction($direction: row) {
-webkit-flex-direction: $direction;
flex-direction: $direction;
}
@mixin align-items($align: stretch) {
-webkit-align-items: $align;
align-items: $align;
}
@mixin align-self($align: stretch) {
-webkit-align-self: $align;
align-self: $align;
}
@mixin align-content($align: stretch) {
-webkit-align-content: $align;
align-content: $align;
}
/**
* justify-content
*
* Uses "text-align" for the fallback inline-block grid
* "text-align" is globally supported and works on all rows except the last
* "text-align-last", where supported, handles the last line (and, happily, grids with only one row)
*
*/
@mixin justify-content-start() {
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
@mixin justify-content-end() {
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
@mixin justify-content-center() {
-webkit-justify-content: center;
justify-content: center;
}
@mixin justify-content-space-between() {
-webkit-justify-content: space-between;
justify-content: space-between;
}
@mixin justify-content-space-around() {
-webkit-justify-content: space-around;
justify-content: space-around;
}
/**
* Responsible Visibility
*
*/
@mixin grid-responsive-visibility-helpers() {
// We need to handle xxs and xlg breakpoints differently
$grid__map-breakpoints: map-remove($grid__breakpoints, xxs, xlg);
.hidden-xxs {
@include media-breakpoint-only('xxs') {
display: none;
}
}
@each $bp in map-keys($grid__map-breakpoints)
{
.hidden-#{$bp}-up {
@include media-breakpoint-up($bp) {
display: none;
}
}
.hidden-#{$bp}-down {
@include media-breakpoint-down($bp) {
display: none;
}
}
.hidden-#{$bp} {
@include media-breakpoint-only($bp) {
display: none;
}
}
}
.hidden-xlg {
@include media-breakpoint-only('xlg') {
display: none;
}
}
}
/**
* Breakpoint viewport sizes and media queries
*
* Breakpoints are defined as a map of (name: minimum width), order from small to large:
* (xs: 576px, sm: 768px, md: 992px)
* The map defined in the `$reflex-breakpoints` global variable is used as the `$breakpoints` argument by default.
* Name of the next breakpoint, or null for the last breakpoint.
* >> breakpoint-next(sm) -> md
* >> breakpoint-next(sm, $breakpoints: (xs: 576px, sm: 768px, md: 992px)) -> md
* >> breakpoint-next(sm, $breakpoint-names: (xs sm md)) -> md
*
*/
@function breakpoint-next($name, $breakpoints: $grid__breakpoints, $breakpoint-names: map-keys($breakpoints)) {
$n: index($breakpoint-names, $name);
@return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
}
/**
* Minimum breakpoint width. Null for the smallest (first) breakpoint.
* breakpoint-min(sm, (xs: 576px, sm: 768px, md: 992px)) -> 768px
*
*/
@function breakpoint-min($name, $breakpoints: $grid__breakpoints) {
$min: map-get($breakpoints, $name);
@return if($min !=0, $min, null);
}
// Maximum breakpoint width. Null for the largest (last) breakpoint.
// The maximum value is calculated as the minimum of the next one less 0.1.
// >> breakpoint-max(sm, (xs: 576px, sm: 768px, md: 992px)) -> 991px
@function breakpoint-max($name, $breakpoints: $grid__breakpoints) {
$next: breakpoint-next($name, $breakpoints);
@return if($next, breakpoint-min($next, $breakpoints) - 1, null);
}
// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
// Makes the @content apply to the given breakpoint and wider.
@mixin media-breakpoint-up($name, $breakpoints: $grid__breakpoints) {
$min: breakpoint-min($name, $breakpoints);
@if $min {
@media (min-width: $min) {
@content;
}
}
@else {
@content;
}
}
/**
* Media of at most the maximum breakpoint width. No query for the largest breakpoint.
* Makes the @content apply to the given breakpoint and narrower.
*
*/
@mixin media-breakpoint-down($name, $breakpoints: $grid__breakpoints) {
$max: breakpoint-max($name, $breakpoints);
@if $max {
@media (max-width: $max) {
@content;
}
}
@else {
@content;
}
}
/**
* Media between the breakpoint's minimum and maximum widths.
* No minimum for the smallest breakpoint, and no maximum for the largest one.
* Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
*
*/
@mixin media-breakpoint-only($name, $breakpoints: $grid__breakpoints) {
@include media-breakpoint-up($name, $breakpoints) {
@include media-breakpoint-down($name, $breakpoints) {
@content;
}
}
}
@mixin box-sizing($boxmodel) {
-webkit-box-sizing: $boxmodel;
-moz-box-sizing: $boxmodel;
box-sizing: $boxmodel;
}

@ -1,11 +1,13 @@
@import
'../fonts/stylesheet',
'node_modules/reflex-grid/scss/reflex',
'functions',
'mixins',
'variables',
'core/container',
'core/normalize',
'core/content',
'core/heading',
@ -29,7 +31,7 @@
'layouts/masonry',
'layouts/slider',
'layouts/grid',
'layouts/flex',
'helpers/core',
'helpers/sizing',

@ -1,13 +1,9 @@
const mix = require('laravel-mix')
const path = require('path')
const fs = require('fs')
const SvgSpritemapPlugin = require('svg-spritemap-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const path = require('path')
require('laravel-mix-purgecss')
/*
|--------------------------------------------------------------------------
| Mix Asset Management
@ -19,12 +15,6 @@ require('laravel-mix-purgecss')
|
*/
const strings = {
'title' : 'Plain UI',
'description' : 'Simple UI Framework for Apps and Websites',
'version' : '0.5'
}
mix.webpackConfig({
plugins: [
new SvgSpritemapPlugin([
@ -36,69 +26,29 @@ mix.webpackConfig({
chunk: {
keep: true
},
svg4everybody: false,
svgo: {
plugins: [{
name: 'convertStyleToAttrs',
active: true
},{
name: 'removeStyleElement',
active: true
}, {
name: 'removeAttrs',
params: {
removeAttrs: {
attrs: 'fill'
}
}]
}
},
svg4everybody: false
},
sprite: {
prefix: 'icon-'
}
}),
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'src/html/layout.html.ejs',
current: 'index.html',
strings: strings,
content: fs.readFileSync(__dirname + '/src/html/basics.html'),
inject: false
}),
new HtmlWebpackPlugin({
filename: 'components.html',
template: 'src/html/layout.html.ejs',
current: 'components.html',
strings: strings,
content: fs.readFileSync(__dirname + '/src/html/components.html'),
inject: false
}),
new HtmlWebpackPlugin({
filename: 'layout.html',
template: 'src/html/layout.html.ejs',
current: 'layout.html',
strings: strings,
content: fs.readFileSync(__dirname + '/src/html/layout.html'),
inject: false
}),
new HtmlWebpackPlugin({
filename: 'helpers.html',
template: 'src/html/layout.html.ejs',
current: 'helpers.html',
strings: strings,
content: fs.readFileSync(__dirname + '/src/html/helpers.html'),
inject: false
})
]
})
mix
.setPublicPath('./examples')
.sass('src/scss/plain-ui.scss', 'examples/plain-ui.css')
.setPublicPath('./public')
.sass('src/scss/plain-ui.scss', 'public/plain-ui.css')
.purgeCss({
extend: {
content: [
path.join(__dirname, 'examples/*.html'),
path.join(__dirname, 'public/*.html'),
]
}
})

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save