đŸ’Ģ pivot.css

TangoMan Pivot CSS is a lightweight extension of picoss (the minimal CSS framework for semantic HTML) focused on providing a boilerplate for building single page applications.

📌 pivot.css Documentation

📍 Alerts

Alert styles will be applied on any element with a role="alert".

Four types of alerts can be displayed :

  • class="info"
  • class="success"
  • class="warning"
  • class="danger"

Although optional, alerts can own a header, a footer, and a button class="close".

<div id="alert-info" class="info" role="alert">
	<header>
		<button class="close" role="button" aria-controls="alert-info"></button>
		â„šī¸ alert-info
	</header>
	<p role="alertdialog"> ... </p>
	<footer role="contentinfo">Lorem ipsum</footer>
</div>

Attribute p role="alertdialog" has no effect but is recommended for accessibility.

📍 Buttons

Four types of buttons can be displayed :

  • class="info"
  • class="success"
  • class="warning"
  • class="danger"

<button class="success">
	✅ This is a <strong>success</strong> button
</button>

Buttons can own a disabled state.

📍 Toolbars

Toolbars are used to group buttons in a compact way. Texts, links, buttons, emojis, fonticons and inline svg inside toolbars will align vertically.

A toolbar must own a role="toolbar" attribute to be used as a toolbar. All items contained in the toolbar must own role="menuitem" attribute to be displayed properly.

<ul role="toolbar">
	<li role="menuitem">
		<button>⭐</button>
	</li>
	<li role="menuitem">
		<a role="button">👍</a>
	</li>
	<li role="menuitem">
		<a href="https://tangoman.io">â™Ĩī¸</a>
	</li>
	<li role="menuitem">
		<button>T</button>
	</li>
</ul>

📍 Menubars

Menubars are used to group links in a collapsible menu.

Collapsible menubar are built with an element with role="menu" as a wrapper and an element with role="menubar" as direct child. All items contained in the menubar must own role="menuitem" attribute to be displayed properly.

<ul role="menubar">
	<li role="menuitem">
		<span class="icon icon-date"></span>
		<small>2025-01-01</small>
	</li>
	<li role="menuitem">
		<span class="icon icon-time"></span>
		<small>12:30</small>
	</li>
</ul>

📍 Toasts

A element must own a data-toast=" ... " attribute to display a toast message.

Four types of toasts can be displayed :

  • data-toast-type="info"
  • data-toast-type="success"
  • data-toast-type="warning"
  • data-toast-type="danger"

Toasts can also own the following attributes :

  • data-toast-icon="👋"
  • data-toast-title="Hello World !
  • data-toast-fonticon="icon icon-search"
  • data-toast-footer="lorem ipsum"

Duration : Toasts can be displayed for a specific duration (in milliseconds) :

  • data-toast-duration="3000" (duration is defined in miliseconds)
  • If set to data-toast-duration="0", toast stays up until closed by user

Position : Toasts can be displayed in four different positions :

  • data-toast-position="top"
  • data-toast-position="right"
  • data-toast-position="bottom"
  • data-toast-position="left"

Test :

  1. Click on a button to display a toast.
  2. Click on the button to hide the toast.
  3. Toasts are automatically hidden after 5 seconds.

<button class="success"
	data-toast="This is a success message."
	data-toast-type="success"
>
	✅ Click here to display a <strong>success</strong> message
</button>

📍 Tabs

Tabs are used to display content in a compact way. They can be used to group content in a tabbed interface.

Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur sint minima officia culpa incidunt fugit inventore unde quidem voluptatibus autem repellat dolor libero non facilis a aut, odio repudiandae temporibus.

Molestias iusto placeat nesciunt cumque, sed earum? Incidunt aliquid repudiandae numquam nulla facere cumque consequuntur repellat, corporis. Quos, minus eveniet facere et.

Lorem ipsum dolor sit amet.

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Corporis, corrupti enim nemo quis adipisci hic quidem molestiae earum. Necessitatibus, vero provident quas officia hic error? Tenetur molestiae vitae officia atque.

Sint sequi recusandae dolorem aliquid possimus dignissimos cum quas, repudiandae sapiente asperiores tempore quia soluta obcaecati odit quae natus nisi vel eveniet.

Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ratione sunt, doloribus perferendis labore commodi optio veniam reprehenderit expedita explicabo eaque iure cum dolore sequi similique quae molestiae quaerat dolorum maxime?

Quidem eligendi eius ipsum ratione consectetur minima, dolorem tenetur maxime animi, consequuntur, quo rerum. Non illum repellat beatae harum eum, quos sint?

Lorem ipsum dolor sit amet.

  • Each tab requires a role="tab" attribute.
  • And a aria-controls attribute that references the id of the corresponding panel.
  • Each panel requires a role="tabpanel" attribute.
  • The first tab is selected by default.

<ul class="tabs" role="tablist">
	<li id="tab-1" role="tab" aria-controls="panel-1">
		<button class="close" role="button"></button>
		Panel 1
	</li>
	<li> ... </li>
</ul>

Tabs can own a disabled state.

<article id="panel-1" role="tabpanel" aria-labelledby="tab-1">
	<header>
		<h3>Panel 1</h3>
	</header>
	<p> ... </p>
</article>

Attribute aria-labelledby=" ... " that references the id of the corresponding tab is optional but recommended for accessibility.

📍 Flex

pivot.css provides a set of utility classes to help you build a responsive layout. You can use the following classes to create a flexbox layout :

  • .flex spaces child elements evenly, with the first at the start and the last at the end.
  • .flex-right enables Flexbox but keeps the container inline and aligns child elements to the right.

📍 Grid

footer from articles displayed in a grid will align at the bottom of each parent article automatically.

Grid 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit.

Nobis iure dignissimos facilis amet officiis debitis praesentium itaque necessitatibus?

Repellendus similique iure in quia officiis accusamus aut soluta, nesciunt iusto impedit!

Grid 2

Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut, neque, sunt vel cumque corporis, Iusto eaque perferendis voluptate.

Esse, facilis ducimus?

Grid 3

Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque a voluptas excepturi explicabo, eveniet quos, recusandae similique, dolores enim dolor inventore magnam! Commodi, accusamus inventore necessitatibus laborum odit quod similique.

📍 pico.css Icons

pivot.css provides a set of utility classes to help reuse picocss icons in your HTML by using the class="icon icon-[icon-name]" class in a <span> or <i> element.

Availlable icons are the following :

  • icon icon-checkbox (used on [type=checkbox]:checked)
  • icon icon-minus (used on [type=checkbox]:indeterminate)
  • icon icon-chevron (used on <select>)
  • icon icon-date (used on <input type="date">)
  • icon icon-time (used on <input type="time">)
  • icon icon-search (used on <input type="search">)
  • icon icon-close (used on <button class="close">)
  • icon icon-loading (used on [aria-busy=true])
  • icon icon-valid (used on [aria-invalid=false])
  • icon icon-invalid (used on [aria-invalid=true])