
Security News
Socket Releases Free Certified Patches for Critical vm2 Sandbox Escape
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.
Protozaur is semantic, mnemonic, declarative CSS framework, created to avoid wasting time and increase productivity
Primal rage of css primitives
Protozaur is semantic, mnemonic, declarative CSS framework, created to avoid wasting time and increase productivity
<td style="text-align:left">
<b>CSS style</b>
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ma
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin: auto
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Margin</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
m0 ... m100 — <em>(step 5)</em>
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ml0 ... ml100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin-left: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
mr0 ... mr100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin-right: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
mt0 ... mt100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin-top: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
mb0 ... mb100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
margin-bottom: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Padding</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
p0 ... p100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
padding: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pl0 ... pl100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
padding-left: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pr0 ... pr100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
padding-right: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pt0 ... pt100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
padding-top: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pb0 ... pb100
</td>
<td width="400px" valign="top" style='vertical-align:top'>
padding-bottom: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Width</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
w10 ... w1200
</td>
<td width="400px" valign="top" style='vertical-align:top'>
width: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
w5p ... w100p
</td>
<td width="400px" valign="top" style='vertical-align:top'>
width: <b>X</b>% !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Display</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
inline
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: inline !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
block
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: block !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
iblock
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: inline-block !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Table</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--table
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: table
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--row, ptz--tr
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: table-row
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--cell, ptz--th, ptz--td
</td>
<td width="400px" valign="top" style='vertical-align:top'>
display: table-cell; vertical-align: top
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
vat
</td>
<td width="400px" valign="top" style='vertical-align:top'>
vertical-align: top !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
vam
</td>
<td width="400px" valign="top" style='vertical-align:top'>
vertical-align: middle !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
vab
</td>
<td width="400px" valign="top" style='vertical-align:top'>
vertical-align: bottom !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Position</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
posrel
</td>
<td width="400px" valign="top" style='vertical-align:top'>
position: relative !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
posabs
</td>
<td width="400px" valign="top" style='vertical-align:top'>
position: absolute !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Common style</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
fs0, fs10 ... fs30 — <em>(step 1)</em>
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-size: <b>X</b>px !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
lh100 ... lh200
</td>
<td width="400px" valign="top" style='vertical-align:top'>
line-height: <b>X</b>% !important;
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
tac
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-align: center !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
tar
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-align: right !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
tal
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-align: left !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
taj
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-align: justify !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
b
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-weight: bold !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
i
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-style: italic !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
n
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-style: normal !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
u
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-decoration: underline !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
fwn
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-weight: normal !important
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
upcase
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-transform: uppercase
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
downcase
</td>
<td width="400px" valign="top" style='vertical-align:top'>
text-transform: lowercase
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ffa
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Arial
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
fft
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Tahoma
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ffv
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Verdana
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ffg
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Georgia
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ffm
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Monospace
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
fftnr
</td>
<td width="400px" valign="top" style='vertical-align:top'>
font-family: Times New Roman
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
br-off
</td>
<td width="400px" valign="top" style='vertical-align:top'>
white-space: nowrap
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
br-on
</td>
<td width="400px" valign="top" style='vertical-align:top'>
white-space: normal
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'> </td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ls0
</td>
<td width="400px" valign="top" style='vertical-align:top'>
letter-spacing: 0
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
lsn
</td>
<td width="400px" valign="top" style='vertical-align:top'>
letter-spacing: normal
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Buttons</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--btn
</td>
<td width="400px" valign="top" style='vertical-align:top'>
button style
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--size-10 ... ptz--size-25
</td>
<td width="400px" valign="top" style='vertical-align:top'>
button's size. 10px ... 25px
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Inputs</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--input, ptz--textarea
</td>
<td width="400px" valign="top" style='vertical-align:top'>
Input style
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ptz--size-10 ... ptz--size-25
</td>
<td width="400px" valign="top" style='vertical-align:top'>
inputs's size. 10px ... 25px
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'><b>Floating</b></td>
<td width="400px" valign="top" style='vertical-align:top'> </td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
clearfix
</td>
<td width="400px" valign="top" style='vertical-align:top'>
no comments
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pull-left
</td>
<td width="400px" valign="top" style='vertical-align:top'>
float: left
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
pull-right
</td>
<td width="400px" valign="top" style='vertical-align:top'>
float: right
</td>
</tr>
<tr>
<td width="400px" valign="top" style='vertical-align:top'>
ofh
</td>
<td width="400px" valign="top" style='vertical-align:top'>
overflow: hidden !important
</td>
</tr>
| CSS class |
<html>
<head>...</head>
<body class='ptz--reset'>...</body>
</html>
or
<html>
<head>...</head>
<body>
...
<div class='ptz--reset'> ... </div>
...
</body>
</html>
Example 1
<h1 class='fs18 lh130 mt20 mb20'>
Hello World!
</h1>
Will add to your H1 following css properties:
font-size: 18px;
line-height: 130%;
margin-top: 20px;
margin-bottom: 20px;
Example 2
<a href='http://github.com' class='ptz--btn ptz--size-16'>Button to Github</a>
Will show button based on font-size: 16px;
Example 3
<form action='/action.php'>
<div class='m20'>
<div class='mb20'>
<input name='login' type='text' class='ptz--input ptz--size-16 w300'>
</div>
<div class='mb20'>
<input name='email' type='text' class='ptz--input ptz--size-16 w300'>
</div>
<div class='clearfix'>
<div class='pull-right'>
<input type='submit' class='ptz--submit ptz--size-16'>
</div>
</div>
</div>
</form>
All CSS properties can be split in 2 groups:
background, color, border etc.)margin, padding, font-size etc.)Protozaur say:
Protozaur advice:
also will be better to include inputs-buttons componetns:
Protozaur:
box-sizing: border-box propertyProtozaur it's not a competitor to your CSS framework. Protozaur is assistant. It helps to reduce size of your CSS files and makes your HTML much easer to read and understand.
Fell free to use Protozaur (or it's idea) with any CSS framework.
As you see Protozaur based on very simple idea and implemented with really simple code.
If you need something special you can copy/paste a part of Protozaur's code and modify it.
Gemfile
gem 'protozaur'
bundle
app/assets/stylesheets/applicaition.css
/*
#= require ptz/reset
#= require ptz/base
#= require ptz/framework
#= require ptz/inputs-buttons/base
#= require ptz/inputs-buttons/sizes
*/
bower install protozaur
in HTML
<link rel="stylesheet" type="text/css" href="./bower_components/ptz/protozaur.min.css">
npm install protozaur
you can use following path
node_modules/protozaur/ptz/protozaur.min.css
See LICENSE.txt
FAQs
Protozaur is semantic, mnemonic, declarative CSS framework, created to avoid wasting time and increase productivity
The npm package protozaur receives a total of 12 weekly downloads. As such, protozaur popularity was classified as not popular.
We found that protozaur demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.Ā It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.

Research
Five malicious NuGet packages impersonate Chinese .NET libraries to deploy a stealer targeting browser credentials, crypto wallets, SSH keys, and local files.

Security News
pnpm 11 turns on a 1-day Minimum Release Age and blocks exotic subdeps by default, adding safeguards against fast-moving supply chain attacks.