Skip to content

Instantly share code, notes, and snippets.

@earth3300
Last active September 26, 2019 15:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save earth3300/b6f7f79f198e1f955089e58698e70110 to your computer and use it in GitHub Desktop.
Save earth3300/b6f7f79f198e1f955089e58698e70110 to your computer and use it in GitHub Desktop.
CSS data saved as an array in a PHP file.
<?php
/**
* EC01 CSS Data
*
* Standardized, (relatively) complete data set of HTML element types,
* elements, and a select list of attributes.
*
* @link https://gist.github.com/earth3300/b6f7f79f198e1f955089e58698e70110
*
* File: data.css.php
* Created: 2019-09-07
* Updated: 2019-09-26
* Time: 08:25 EDT
* ID: ENG-ON-001
*/
namespace Earth3300\EC01;
/** No direct access (NDA). */
defined('NDA') || exit('NDA');
/**
* The CSS Data
*
* @return array
*/
class CssData
{
/**
* Options
*
* @var array
*/
public $opts = [];
/**
* HTML Element Types
*
* A list of the HTML Element Types
*
* @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element
*
* @return array
*/
public function getTypes()
{
$items = [
[ 'name' => 'sectioning', 'use' => 1, ],
[ 'name' => 'content', 'use' => 1, ],
[ 'name' => 'structural', 'use' => 1, ],
[ 'name' => 'semantics', 'use' => 1, ],
[ 'name' => 'media', 'use' => 1, ],
[ 'name' => 'embedded', 'use' => 1, ],
[ 'name' => 'script', 'use' => 1, ],
[ 'name' => 'edits', 'use' => 1, ],
[ 'name' => 'table', 'use' => 1, ],
[ 'name' => 'forms', 'use' => 1, ],
[ 'name' => 'interactive', 'use' => 1, ],
[ 'name' => 'components', 'use' => 1, ],
];
return $items;
}
/**
* HTML Elements
*
* A list of the HTML Elements (approx. 120).
*
* @link https://developer.mozilla.org/en-US/docs/Web/HTML/Element
*
* @return array
*/
public function getElements()
{
$items = [
[ 'name' => 'html', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'body', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'main', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'header', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'nav', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'nav:first-of-type', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'article', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'section', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'aside', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'footer', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'footer:last-of-type', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'hgroup', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h1', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h2', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h3', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h4', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h5', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => 'h6', 'use' => 1, 'type' => 'sectioning', ],
[ 'name' => '.cover', 'use' => 1, 'type' => 'structural', ],
[ 'name' => '.sheets', 'use' => 1, 'type' => 'structural', ],
[ 'name' => '.sheets .sheet', 'use' => 1, 'type' => 'structural', ],
[ 'name' => '.gallery', 'use' => 1, 'type' => 'structural', ],
[ 'name' => 'p', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'a', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'a:focus', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'a:hover', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'a:active', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'a:visited', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'address', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'blockquote', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'cite', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'code', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'data', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'dfn', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'dd', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'dt', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'dl', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'div', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'figure', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'figcaption', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'hr', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'ul', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'ol', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'li', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'pre', 'use' => 1, 'type' => 'content', ],
[ 'name' => 'abbr', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'bdi', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'bdo', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'b', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'em', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'i', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'br', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'kbd', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'mark', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'q', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'rb', 'use' => 0, 'type' => 'semantics', 'desc' => 'ruby', ],
[ 'name' => 'rp', 'use' => 0, 'type' => 'semantics', 'desc' => 'ruby', ],
[ 'name' => 'rt', 'use' => 0, 'type' => 'semantics', 'desc' => 'ruby', ],
[ 'name' => 'rtc', 'use' => 0, 'type' => 'semantics', 'desc' => 'ruby', ],
[ 'name' => 'ruby', 'use' => 0, 'type' => 'semantics', 'desc' => 'ruby', ],
[ 'name' => 's', 'use' => 1, 'type' => 'semantics', 'desc' => 'strikethrough', ],
[ 'name' => 'small', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'span', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'strong', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'sub', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'sup', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'time', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'tt', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'u', 'use' => 1, 'type' => 'semantics', 'desc' => 'unarticulated', ],
[ 'name' => 'var', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'wbr', 'use' => 1, 'type' => 'semantics', ],
[ 'name' => 'area', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'audio', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'img', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'map', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'track', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'video', 'use' => 1, 'type' => 'media' ],
[ 'name' => 'embed', 'use' => 1, 'type' => 'embedded' ],
[ 'name' => 'iframe', 'use' => 1, 'type' => 'embedded' ],
[ 'name' => 'param', 'use' => 1, 'type' => 'embedded' ],
[ 'name' => 'picture', 'use' => 1, 'type' => 'embedded' ],
[ 'name' => 'source', 'use' => 1, 'type' => 'embedded' ],
[ 'name' => 'canvas', 'use' => 1, 'type' => 'script' ],
[ 'name' => 'script', 'use' => 0, 'type' => 'script' ],
[ 'name' => 'noscript', 'use' => 0, 'type' => 'script' ],
[ 'name' => 'del', 'use' => 1, 'type' => 'edits' ],
[ 'name' => 'ins', 'use' => 1, 'type' => 'edits' ],
[ 'name' => 'caption', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'col', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'colgroup', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'table', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'tbody', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'th', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'tr', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'td', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'thead', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'tfoot', 'use' => 1, 'type' => 'table' ],
[ 'name' => 'button', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'datalist', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'fieldset', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'form', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'input', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'label', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'legend', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'meter', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'optgroup', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'option', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'output', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'progress', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'select', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'textarea', 'use' => 1, 'type' => 'forms' ],
[ 'name' => 'details', 'use' => 1, 'type' => 'interactive' ],
[ 'name' => 'dialogue', 'use' => 1, 'type' => 'interactive' ],
[ 'name' => 'menu', 'use' => 1, 'type' => 'interactive' ],
[ 'name' => 'menuitem', 'use' => 1, 'type' => 'interactive' ],
[ 'name' => 'summary', 'use' => 1, 'type' => 'interactive' ],
[ 'name' => 'slot', 'use' => 1, 'type' => 'components' ],
[ 'name' => 'template', 'use' => 1, 'type' => 'components' ],
[ 'name' => 'html.dark', 'use' => 1, 'type' => 'color' ],
];
return $items;
}
/**
* Get Attributes
*
* There are approximately 20 attributes for each element that can be set.
*/
public function getAttributes()
{
$items = [
[ 'name' => 'use', 'default' => '1', 'use' => 1, ],
[ 'name' => 'type', 'default' => '', 'use' => 1, ],
[ 'name' => 'position', 'default' => '', 'use' => 1, ],
[ 'name' => 'float', 'default' => '', 'use' => 1, ],
[ 'name' => 'width', 'default' => '', 'use' => 1, ],
[ 'name' => 'height', 'default' => '', 'use' => 1, ],
[ 'name' => 'max-width', 'default' => '', 'use' => 1, ],
[ 'name' => 'min-width', 'default' => '', 'use' => 1, ],
[ 'name' => 'max-height', 'default' => '', 'use' => 1, ],
[ 'name' => 'min-height', 'default' => '', 'use' => 1, ],
[ 'name' => 'margin', 'default' => '', 'use' => 1, ],
[ 'name' => 'margin-bottom', 'default' => '', 'use' => 1, ],
[ 'name' => 'padding', 'default' => '', 'use' => 1, ],
[ 'name' => 'font', 'default' => '', 'use' => 1, ],
[ 'name' => 'font-size', 'default' => '', 'use' => 1, ],
[ 'name' => 'font-family', 'default' => '', 'use' => 1, ],
[ 'name' => 'text-decoration', 'default' => '', 'use' => 1, ],
[ 'name' => 'line-height', 'default' => '', 'use' => 1, ],
[ 'name' => 'box-sizing', 'default' => '', 'use' => 1, ],
[ 'name' => 'border', 'default' => '', 'use' => 1, ],
[ 'name' => 'box-shadow', 'default' => '', 'use' => 1, ],
[ 'name' => 'display', 'default' => '', 'use' => 1, ],
[ 'name' => 'overflow', 'default' => '', 'use' => 1, ],
[ 'name' => 'z-index', 'default' => '', 'use' => 1, ],
[ 'name' => 'opacity', 'default' => '', 'use' => 1, ],
[ 'name' => 'color', 'default' => '', 'use' => 1, ],
[ 'name' => 'background-color', 'default' => '', 'use' => 1, ],
];
return $items;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment