CMS Folder - HTML/JAVASCRIPT page structure

main
Nicolas 3 weeks ago
parent 3c33b87036
commit 2a326ab4c1

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.33 24l-2.83-2.829 9.339-9.175-9.339-9.167 2.83-2.829 12.17 11.996z"/></svg>

Before

Width:  |  Height:  |  Size: 170 B

@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M12 2h2v2h2v3.702l7 2.618v12.68h1v1h-24v-1h1v-11h6v-8h2v-2h2v-2h1v2zm3 3h-7v18h1v-2h5v2h1v-18zm-2 17h-3v1h3v-1zm8 1h1v-11.987l-6-2.243v14.23h1v-2h4v2zm-14-10h-5v10h1v-2h3v2h1v-10zm-2 9h-1v1h1v-1zm15 0h-2v1h2v-1zm-16-5v2h-1v-2h1zm2 0v2h-1v-2h1zm5-10v12h-1v-12h1zm10 11v1h-4v-1h4zm-8-11v12h-1v-12h1zm8 9v1h-4v-1h4zm-17-2v2h-1v-2h1zm2 0v2h-1v-2h1zm15 0v1h-4v-1h4zm0-2v1h-4v-1h4zm-8-9h-3v1h3v-1z"/></svg>

Before

Width:  |  Height:  |  Size: 512 B

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 22l-10-10.598 2.798-2.859 7.149 7.473 13.144-14.016 2.909 2.806z"/></svg>

Before

Width:  |  Height:  |  Size: 168 B

@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M22 9.74l-2 1.02v7.24c-1.007 2.041-5.606 3-8.5 3-3.175 0-7.389-.994-8.5-3v-7.796l-3-1.896 12-5.308 11 6.231v8.769l1 3h-3l1-3v-8.26zm-18 1.095v6.873c.958 1.28 4.217 2.292 7.5 2.292 2.894 0 6.589-.959 7.5-2.269v-6.462l-7.923 4.039-7.077-4.473zm-1.881-2.371l9.011 5.694 9.759-4.974-8.944-5.066-9.826 4.346z"/></svg>

Before

Width:  |  Height:  |  Size: 424 B

@ -1 +0,0 @@
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M12 0c-3.371 2.866-5.484 3-9 3v11.535c0 4.603 3.203 5.804 9 9.465 5.797-3.661 9-4.862 9-9.465v-11.535c-3.516 0-5.629-.134-9-3zm0 1.292c2.942 2.31 5.12 2.655 8 2.701v10.542c0 3.891-2.638 4.943-8 8.284-5.375-3.35-8-4.414-8-8.284v-10.542c2.88-.046 5.058-.391 8-2.701zm5 7.739l-5.992 6.623-3.672-3.931.701-.683 3.008 3.184 5.227-5.878.728.685z"/></svg>

Before

Width:  |  Height:  |  Size: 460 B

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 20.168l-8.185-8.187 8.185-8.174-2.832-2.807-8.182 8.179-8.176-8.179-2.81 2.81 8.186 8.196-8.186 8.184 2.81 2.81 8.203-8.192 8.18 8.192z"/></svg>

Before

Width:  |  Height:  |  Size: 240 B

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0l-11 6v12.131l11 5.869 11-5.869v-12.066l-11-6.065zm-1 21.2l-8-4.268v-8.702l8 4.363v8.607zm10-4.268l-8 4.268v-9.793l-8.867-4.837 7.862-4.289 9.005 4.969v9.682zm-4.408-4.338l1.64-.917-.006.623-1.64.918.006-.624zm1.653-2.165l-1.641.919-.006.624 1.641-.918.006-.625zm0-1.19l-1.641.919-.006.624 1.641-.918.006-.625zm-3.747-.781l1.645-.96-.519-.273-1.646.959.52.274zm4.208 6.33l-.486-1.865-1.641.919-.523 2.431c-.229 1.105.422 1.31 1.311.812.886-.497 1.548-1.437 1.339-2.297zm-1.335 1.684c-.411.23-.821.262-.817-.136.005-.41.422-.852.835-1.083.407-.228.81-.25.806.165-.005.398-.415.825-.824 1.054zm-4.349-10.625l-.519-.274-1.646.96.52.274 1.645-.96zm-1.559-.826l-1.646.96.523.277 1.646-.96-.523-.277zm1.992 2.885l1.644-.958-.515-.274-1.647.958.518.274zm3.001 1.744l1.646-.96-.52-.273-1.645.959.519.274zm-6.029-5.177l-1.645.96.516.274 1.647-.959-.518-.275zm1.992 2.886l1.646-.96-.52-.274-1.645.959.519.275zm3.058 1.689l1.646-.959-.518-.274-1.646.96.518.273z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

@ -0,0 +1,13 @@
<!--
This file contains the panes for the various content on the page
-->
{%for _name in layout.menu %}
<!-- <div id="{{_name}}" class="{{_name}}"></div> -->
<div id="{{_name}}"></div>
{%endfor%}
{{index|safe}}

@ -0,0 +1,29 @@
<!--
This is the footer
-->
<!--
<div>version {{system.version}}</div>
{%for _item in layout.footer %}
{% if _item.uri %}
<div align="center"><span class="active" style="padding-left:20px; padding-right:20px" onclick="jx.modal.show('{{_item.uri}}')">{{_item.text}}</span></div>
{%else%}
<div>{{_item.text}}</div>
{%endif %}
{%endfor%}
-->
<div>
<img src="{{system.icon}}" alt="Qcms">
<p>{{layout.header.subtitle}}</p>
</div>
<div>
<nav><ul id="menu">{%include "menu.html" %}</ul></nav>
</div>
<div>
<p>© {{layout.header.title}}</p>
<p>{{_item.text}} | Version {{system.version}}</p>
</div>

@ -0,0 +1,14 @@
<!--
<div class="icon">
<img src="{{system.icon}}">
</div>
<div>
<div class="title">{{layout.header.title}}</div>
<div class="subtitle">{{layout.header.subtitle}}</div>
</div>
-->
<div id="header"><img src="{{system.icon}}" alt=""></div>
<nav><ul id="menu">{%include "menu.html" %}</ul></nav>

@ -0,0 +1,90 @@
<!--
(c) 2004 - 2022 Health Information Privacy Laboratory
Vanderbilt University Medical Center
This is a flask-based cms that considers the following for a website :
- header
- content
- menu
- content
- footer
-->
<!DOCTYPE html>
<html lang="en">
<head>
{% include "libs.html"%}
<title>{{layout.header.title}} - {{layout.header.subtitle}}</title>
<link rel="shortcut icon" href="{{system.icon}}">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="quick cms, cms, python, flask, qcms">
<meta name="robots" content="/, follow, max-snippet:-1, max-image-preview:large">
</head>
<script>
// sessionStorage.setItem('{{system.id}}','{{system.context|safe}}')
var _layout = {{layout|tojson}}
// if (!qcms){
// var qcms = {}
// }
qcms.context = '{{system.context}}'
qcms.root = '{{layout.root}}'
$(document).ready( function(){
bootup.init('{{system.id}}',_layout)
// menu.init({{layout|tojson}},'{{system.context}}')
qcms.menu.init({{layout|tojson}})
})
</script>
<body>
<label class="menu-burger">
<input type="checkbox" />
</label>
<aside class="burger-submenu">
<div>
<input type="checkbox" id="color-scheme" class="menu-theme">
<label for="color-scheme" title="Color Scheme"><span data-attr="light"></span></label>
</div>
<div><nav><ul id="menu">{%include "menu.html" %}</ul></nav></div>
</aside>
<!-- onclick="window.location.href='{{system.context}}'" style="cursor:pointer" -->
<div class="main {{system.theme}}" >
<header>
<div><div>{%include "header.html" %}</div></div>
<!--
<div id="header" class="header" onclick="window.location.href='{{system.context}}'" style="cursor:pointer">{%include "header.html" %}</div>
<div id="menu" class="menu">{%include "menu.html" %}</div>
-->
</header>
<main>
<div id="content" class="content">
{%include "content.html" %}
</div>
<!--
<div id="pane" class="pane">
{%include "pane.html" %}
</div>
-->
</main>
<footer>
<!-- <div id="footer" class="footer">{%include "footer.html" %}</div> -->
<div id="footer">{%include "footer.html" %}</div>
</footer>
</div>
</body>
</html>

@ -0,0 +1,23 @@
{%if system.caller %}
{% if system.parentContext == ""%}
{% set _backURI = "/" %}
{% else %}
{% set _backURI = system.parentContext%}
{% endif %}
<!--
<div class="icon" style="margin:0px" >
<div align="left" class="back-button active" onclick="window.open('{{_backURI}}','_self')" >
<div style="display:grid; align-items:center; grid-template-columns: auto auto;">
<i class="fa-solid fa-chevron-left" style="color:darkgray;"></i>
<img src="{{system.caller.icon}}"/>
</div>
</div>
</div>
{% else %}
<div class="icon">
<i class="fa-solid fa-home"></i>
</div>
{% endif %}
-->

@ -0,0 +1,244 @@
/**
* This file implements 2 types of menus (basic roll down and tabs), they are implemented as objects given
*/
if (!qcms){
var qcms = {}
}
qcms.menu = {}
qcms.menu.Common = function (){
this._format = function (text){
return text.replace(/(-|_)/g,' ').trim()
}
this._open = function (text,uri,_parentId){
var _domId = text.replace(/ /g,'-')
var http = HttpClient.instance()
http.setHeader('dom',_domId)
http.setHeader('uri',uri)
http.post(`${qcms.context}/${uri}`,(x)=>{
//
// @TODO: In case of an error
var _dom = $(x.responseText)
if ( $(_dom).attr("id") == null){
$(_dom).attr("id",_domId)
}
if($(`${_parentId} #${_domId}`).length){
$(`${_parentId} #${_domId}`).remove()
}
var _found = qcms.html.hasNode ($(`${_parentId}`),$(_domId))
if (_found == 0){
$(`${_parentId}`).children().slideUp('fast',()=>{
$(`${_parentId}`).append(_dom)
this._finalize(`${_parentId} #${_domId}`)
})
}
})
}
this._finalize = function (_id){
var _script = $(`${_id} script`)
if (_script.lenth > 0){
_script.each( (_index)=>{
var _code = $(_script)[_index].text
eval(_code)
})
}
}
}
qcms.menu.Basic = function (_layout,_outputId,_domId){
qcms.menu.Common.call(this)
this._layout = _layout
this._parentId = _outputId //-- target of the output
this.init = function (){}
this._build = function (_items){
var _panes = []
var _context = this._context ;
var _open = this._open
var _parentId = this._parentId
// var _format = this._format
// var _finalize = this._finalize
// var _domId = this._domId
var _me = this ;
_items.forEach(_item=>{
// ligne 68 var _div = jx.dom.get .instance('DIV')
var _div = jx.dom.get .instance('LI')
_div.innerHTML = this._format('<button>'+_item.text+'</button>')
//
// We need to check for the override text and see if it goes here
_div.className = 'active'
_div.data = _item
_panes.push(_div)
$(_div).on('click', function (){
//
// how do we process this ...
if (this.data.type == 'redirect') {
window.open(this.data.url,_me._format(this.data.text))
}else if (this.data.type == 'dialog'){
qcms.dialog.show(this.data)
}else if (this.data.type == 'open'){
window.open(this.data.uri,'_self')
}else{
_me._open(_me._format(this.data.text),this.data.uri,_parentId)
}
// if(this.data.uri && this.data.type != 'open') {
// if (this.data.type == 'dialog') {
// qcms.dialog.show(this.data)
// }else{
// _me._open(_me._format(this.data.text),this.data.uri,_parentId)
// }
// }else{
// //
// // redirecting
// if (this.data.uri != null){
// window.open(this.data.uri,'_self')
// }else{
// window.open(this.data.url,_format(this.data.text))
// }
// }
})
})
return _panes ;
}
/**
* This part builds the menu automatically
*/
var _names = _layout.order.menu.length > 0 ? _layout.order.menu : Object.keys(_layout.menu)
_names.forEach ((_name)=>{
if (_layout.menu[_name]){
var _div = this._build(_layout.menu[_name]) ;
var _sub = jx.dom.get.instance('DIV')
var _menuList = jx.dom.get.instance('UL')
var _menuListCont = jx.dom.get.instance('LI')
var _menuItem = jx.dom.get.instance('BUTTON')
_menuItem.innerHTML = this._format (_name)
_sub.className = 'sub-menu '
_menuItem.className = 'item'
_div.forEach(_item=>{$(_sub).append(_item) })
$(_sub).append(_div)
$(_menuList).appendChild(_sub)
$(_menuListCont).appendChild(_menuList)
_menuItem.appendChild(_menuListCont)
_domId = (_domId == null || $(_domId).length == 0)?'.main .menu' : _domId
$(`${_domId}`).append(_menuItem)
}
})
}
/**
* Implementing Tab based menu
*/
qcms.menu.Tabs = function (_layout,_outputId,_domId){
qcms.menu.Common.call(this) //-- inheriting format and open functions
this._layout = _layout
this._parentId = _outputId //-- target of the output
this._domId = _domId
this.tabs = jx.dom.get.instance('DIV')
this.tabs.className = 'tabs'
this._context = qcms.context
this._build = function (text,_item,event){
var text = text.trim().replace(/(_|-)/ig,' ').trim()
var _context = this._context;
if (text.match(/\//)){
text = text.split(/\//g).slice(-1)[0]
}
var _button = jx.dom.get.instance('INPUT')
var _label = jx.dom.get.instance('LABEL')
_button.type= 'radio'
_button.id = text+'tab'
_button.name = 'menu-tabs'
_label.data = {id:text.toLowerCase(),uri:_item[0].uri}
if (this._layout.icon){
var _icon = jx.dom.get.instance('I')
_icon.className = this._layout.icons[text]
$(_label).append(_icon)
}
text = ' ' + text
$(_label).append(text)
$(_button).val(text.toLowerCase())
_label.htmlFor = _button.id
// var _open = this._open
// var _parentId = this._parentId
var _me = this ;
$(_label).on('click',function (){
// _me._open(this.data.id,this.data.uri,_me._parentId)
_me._open(_me._format(this.data.text),this.data.uri,_parentId)
})
return [_button,_label]
}
var _names = _layout.order.menu.length > 0 ? _layout.order.menu : Object.keys(_layout.menu)
// Object.keys(_layout.menu).
_names.forEach(function(_text){
_item = _layout.menu[_text]
_tabItem = this._build(_text,_item)
$(tabs).append(_tabItem)
})
this.tabs.className = 'tabs'
$(this._domId).append(this.tabs)
$(this._domId).css({'border':'1px solid transparent'})
$(this._domId).css({'grid-template-columns':'64px auto'})
}
qcms.menu.init = function(_layout){
if (_layout.order != null){
if (_layout.order.length == null && _layout.order.menu == null){
_layout.order = {menu:[]}
}else if (_layout.order.menu == null){
_layout.order.menu = []
}
}else{
_layout.order = {menu:[]}
}
var _count = 0
var _items = 0
Object.keys(_layout.menu).forEach(_name=>{
_items += _layout.menu[_name].length
_count += 1
})
if (_count == _items){
var _menuObject = new qcms.menu.Tabs (_layout,'.main #content','.main .menu')
}else{
var _menuObject = new qcms.menu.Basic (_layout,'.main #content','.main .menu')
}
}
//
// backward compatibility ...
if(!menu){
var menu = {}
}
menu.init = qcms.menu.init

@ -1,38 +0,0 @@
.border {
border:1px solid #CAD5E0 ;
}
.border-round {
padding:6px;
border-radius:8px;
}
.border-round-top-left{
border-top-left-radius: 8px;
padding:6px;
}
.border-round-top-right{
border-top-right-radius: 8px;
padding:6px;
}
.border-round-bottom-right{
border-bottom-right-radius: 8px;
padding:6px;
}
.border-round-bottom-left{
border-bottom-left-radius: 8px;
padding:6px;
}
.border-right{
border-right:1px solid #CAD5E0;
}
.border-left{
border-left:1px solid #CAD5E0;
}
.border-bottom { border-bottom:1px solid #CAD5E0}
.border-top { border-top:1px solid #CAD5E0}

@ -1,31 +0,0 @@
/**
* This file styles the footer of the page
*/
.footer {
position: relative;
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr 0.25rem 1fr 0.25rem 1fr;
grid-template-columns: repeat(3, 1fr);
gap: 0.25rem;
padding: 0.9375rem;
font-size: 0.8125rem;
background-color: #2e2e2e;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
text-transform: capitalize;
-ms-grid-row-span: auto;
grid-row-end: auto;
padding-left: calc((100% - 67.5rem) / 2);
padding-right: calc((100% - 67.5rem) / 2);
font-family: monospace;
text-transform: uppercase;
color: #999999;
}
.footer div:nth-child(2) {
text-align: center;
}
.footer div:last-child {
text-align: right;
}

@ -1,45 +0,0 @@
/** Px -> rem size **/
.main .header {
width: 67.5rem;
min-height: 37.5rem;
margin: 0 auto;
-ms-flex-line-pack: center;
align-content: center;
text-align: center;
border-bottom-left-radius: 3.125rem;
border-bottom-right-radius: 3.125rem;
border: 1px solid rgba(62, 62, 62, 0.3137254902);
}
.main .header .icon {
width: 64px;
height: 64px;
display: none;
}
.main .header .icon img {
width: 64px;
height: 64px;
}
.main .header .title {
width: 70%;
margin: 0 auto;
font-size: 4.5rem;
font-weight: 800;
text-wrap: balance;
margin-bottom: 1.25rem;
text-transform: capitalize;
}
.main .header .subtitle {
width: 50%;
margin: 0 auto;
text-transform: uppercase;
letter-spacing: 0.125rem;
font-size: 0.8125rem;
font-weight: 800;
text-wrap: balance;
color: #4e4e4e;
line-height: 1.8;
}

@ -1,349 +0,0 @@
/**
* This file implements theme Open Source Software, the expectation is just a pager that presents a tool/software
*/
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400..800;1,400..800&display=swap");
*,
*::before,
*::after {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/** Px -> rem size **/
body {
font-family: "Plus Jakarta Sans", sans-serif;
font-size: 16px;
font-weight: 400;
overflow-x: hidden;
}
.main {
width: 100%;
min-height: 100dvh;
display: -ms-grid;
display: grid;
-ms-grid-columns: 0 1fr 0;
grid-template-columns: 0 1fr 0;
-ms-grid-columns: minmax(0, 1fr);
grid-template-columns: minmax(0, 1fr);
font-size: 16px;
}
.main .content {
-ms-flex-item-align: center;
-ms-grid-row-align: center;
align-self: center;
height: 100%;
width: 100%;
}
.main .content .banner {
background-repeat: no-repeat;
background-size: cover;
background-position: center;
height: 200px;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-ms-flex-line-pack: center;
align-content: center;
display: -ms-grid;
display: grid;
}
/* .main .pane {border-left:1px solid #CAD5E0; height:100%; padding:8px;} */
.bold {
font-weight: bold;
}
.small-text {
font-size: 12px;
font-weight: lighter;
color: #000000;
}
.active {
cursor: pointer;
padding: 2px;
margin: 2px;
border-bottom: 2px solid transparent;
}
.active:hover {
border-bottom-color: #4682b4;
}
/**
*
*/
.large-text {
font-weight: bold;
font-size: 28px;
}
h2 {
font-size: 2.75rem;
font-weight: 700;
text-wrap: balance;
margin-bottom: 1.25rem;
}
h3 {
font-size: 1.75rem;
font-weight: 700;
text-wrap: balance;
text-align: left;
}
iframe {
width: 100%;
height: 100%;
border: 0;
}
p {
font-weight: 400;
text-wrap: pretty;
color: #4e4e4e;
line-height: 1.8;
}
section {
padding: 6.25rem 0 6.25rem 0;
}
table, tr, td, th {
border: 0;
}
ul, li {
list-style: none;
}
table {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
.transport .product table tr {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr 1.25rem 1fr 1.25rem 1fr;
grid-template-columns: repeat(3, 1fr);
gap: 1.25rem;
}
.transport .product table td, .transport .product table th {
padding: 0.625rem;
padding-left: 1.875rem;
padding-right: 1.875rem;
}
.transport .product table td {
font-size: 0.8125rem;
font-weight: 800;
line-height: 1.3;
}
.transport .product table td .small {
font-weight: 400;
font-size: 0.6875rem;
font-family: monospace;
color: #4e4e4e;
}
.transport .product table th {
display: block;
min-height: 9.375rem;
text-align: center;
padding: 1.875rem;
display: -ms-grid;
display: grid;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-size: 1.75rem;
font-weight: 700;
color: #1A73E8;
text-transform: capitalize;
border-top: 1px solid rgba(26, 115, 232, 0.5647058824);
border-top-left-radius: 1.25rem;
border-top-right-radius: 1.25rem;
}
.transport .product table th:first-child {
border-top: 1px solid rgba(78, 78, 78, 0.3137254902);
}
.transport .product table tr:last-child > td {
border-bottom: 1px solid rgba(26, 115, 232, 0.5647058824);
border-bottom-left-radius: 1.25rem;
border-bottom-right-radius: 1.25rem;
padding-bottom: 1.875rem;
}
.transport .product table tr:last-child > td:first-child {
border-bottom: 1px solid rgba(78, 78, 78, 0.3137254902);
}
.transport .product table tr > td:nth-child(2), .transport .product table tr > td:nth-child(3) {
text-align: center;
}
/** main content sections **/
.notebook h2, .notebook p {
text-align: center;
}
.notebook p {
margin-top: 1.875rem;
}
.m-content {
position: relative;
width: 67.5rem;
margin: 0 auto;
}
.transport .m-content th, .transport .m-content td {
border-left: 1px solid rgba(26, 115, 232, 0.5647058824);
border-right: 1px solid rgba(26, 115, 232, 0.5647058824);
}
.transport .m-content th:first-child, .transport .m-content td:first-child {
border-left: 1px solid rgba(78, 78, 78, 0.3137254902);
border-right: 1px solid rgba(78, 78, 78, 0.3137254902);
}
.notebook .m-content {
display: -ms-grid;
display: grid;
gap: 3.125rem;
}
.m-price--plan {
display: -ms-grid;
display: grid;
gap: 3.125rem;
}
.m-price--plan h2 {
text-align: center;
width: 60%;
margin: 0 auto;
}
.m-content--design1 {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr 1.25rem 4fr;
grid-template-columns: 1fr 4fr;
min-height: 18.75rem;
gap: 1.25rem;
}
.m-panel--list {
border: 1px solid rgba(78, 78, 78, 0.3137254902);
}
.m-panel--list li {
position: relative;
height: 2.5rem;
text-transform: uppercase;
font-size: 0.8125rem;
display: -ms-grid;
display: grid;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
font-family: monospace;
padding-left: 1.25rem;
cursor: pointer;
}
.m-panel--list li::before {
content: "";
position: absolute;
top: 0;
left: -1px;
width: 1px;
height: 100%;
background-color: #1A73E8;
visibility: hidden;
}
.m-panel--list li:hover::before {
visibility: visible;
}
.m-panel--list li:hover {
color: #1A73E8;
}
.m-content--design1 > div:last-child {
border: 1px solid rgba(62, 62, 62, 0.3137254902);
padding: 1.25rem;
border-radius: 0.625rem;
min-height: 37.5rem;
}
.design-2 {
display: -ms-grid;
display: grid;
gap: 3.125rem;
}
.design-2 .license {
position: relative;
font-family: monospace;
font-weight: 400;
text-wrap: pretty;
font-size: 1rem;
text-transform: lowercase;
color: #4e4e4e;
line-height: 1.8;
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
-webkit-column-gap: 2.5rem;
-moz-column-gap: 2.5rem;
column-gap: 2.5rem;
-webkit-column-fill: balance;
-moz-column-fill: balance;
column-fill: balance;
}
.design-2 > div:last-child {
border: 1px solid rgba(62, 62, 62, 0.3137254902);
padding: 1.875rem;
border-radius: 0.625rem;
background-color: rgba(68, 68, 68, 0.1882352941);
color: #3e3e3e;
}
.design-2 > div:last-child h3 {
text-align: center;
color: #000;
margin-bottom: 2.5rem;
}
.design-2 .supported {
position: relative;
}
.design-2 .supported table {
margin-top: 3.125rem;
width: 70%;
margin: 0 auto;
font-family: monospace;
font-size: 0.8125rem;
text-transform: uppercase;
text-align: center;
}
.design-2 .supported table th {
color: #fff;
text-align: center;
padding-top: 0.875rem;
padding-bottom: 0.875rem;
background-color: #1A73E8;
border-left: 1px solid rgba(255, 255, 255, 0.2509803922);
}
.design-2 .supported table th:first-child {
border-top-left-radius: 0.3125rem;
border-bottom-left-radius: 0.3125rem;
border: 0;
}
.design-2 .supported table th:last-child {
border-top-right-radius: 0.3125rem;
border-bottom-right-radius: 0.3125rem;
}
.design-2 .supported table td {
padding-top: 0.3125rem;
padding-bottom: 0.3125rem;
}

@ -1,197 +0,0 @@
/** Px -> rem size **/
.menu .icon {
width: 2.75rem;
height: 2.75rem;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -ms-grid;
display: grid;
background-color: #2e2e2e;
justify-items: center;
border-top-left-radius: 0.3125rem;
border-bottom-left-radius: 0.3125rem;
}
.menu .icon svg path {
fill: #1A73E8;
}
.menu .icon img {
width: 30px;
height: 30px;
}
.main .menu .sub-menu {
display: none;
position: absolute;
bottom: 0;
-webkit-transform: translateY(100%);
transform: translateY(100%);
padding: 0.5rem;
padding-top: 1.5rem;
padding-left: 1.25rem;
padding-right: 0.9375rem;
width: -webkit-max-content;
width: -moz-max-content;
width: max-content;
z-index: 90;
font-size: 0.8125rem;
font-family: monospace;
font-weight: 400;
letter-spacing: 0;
text-align: left;
-webkit-box-align: left;
-ms-flex-align: left;
align-items: left;
color: #4e4e4e;
background-color: transparent;
border: 0;
}
.item:last-child .sub-menu {
right: 0;
}
.main .menu .sub-menu::after {
position: absolute;
content: "";
left: 0;
top: 0.8125rem;
width: 100%;
height: 100%;
border: 0;
z-index: -1;
border: 1px solid rgba(78, 78, 78, 0.3137254902);
border-top: 0;
background-color: #ffffff;
}
.main .menu .item {
position: relative;
display: -ms-grid;
display: grid;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
color: #ffffff;
font-weight: 700;
padding: 0.75rem;
padding-right: 1.5625rem;
padding-left: 1.5625rem;
height: 2.75rem;
font-family: monospace;
background-color: #2e2e2e;
text-transform: uppercase;
font-size: 0.8125rem;
border-left: 1px solid rgba(153, 153, 153, 0.2509803922);
}
.main .menu .item:last-child {
border-top-right-radius: 0.3125rem;
border-bottom-right-radius: 0.3125rem;
}
.main .menu .item::after {
position: absolute;
content: "+";
margin-top: -0.1875rem;
margin-right: 1.25rem;
-ms-grid-column-align: end;
justify-self: end;
color: #1A73E8;
font-size: 1rem;
z-index: 1;
visibility: hidden;
}
.main .menu .item:has(div:last-child)::after {
visibility: visible;
}
.main .menu .item:has(div:last-child) {
padding-right: 2.1875rem;
}
.main .menu .item:hover .sub-menu {
display: block;
height: auto;
}
.main .menu {
position: fixed;
top: 0;
z-index: 100;
width: 100%;
height: 4.5rem;
left: 0;
right: 0;
background-color: #ffffff;
border-bottom: 1px solid rgba(62, 62, 62, 0.3137254902);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.main .menu .icon .button {
border: 1px solid #CAD5E0;
border-radius: 8px;
padding: 2px;
}
/**
* TAB SPECIFICATIONS WITH RADIO BUTTONS AND LABELS
*/
.tab-content table {
width: 99%;
border-radius: 8px;
padding: 8px;
border: 1px solid #d3d3d3;
}
.tab-content table tr:nth-child(even) {
background-color: #f3f3f3;
}
/* .tab-content {width:80%;} */
.tabs {
display: -ms-grid;
display: grid;
grid-template-columns: repeat(auto-fit, 209px);
gap: 0px;
-ms-flex-line-pack: center;
align-content: center;
/* background-color: #f3f3f3; */
padding-top: 4px;
padding-left: 4px;
padding-right: 4px;
}
.tabs input[type=radio] {
display: none;
}
.tabs input[type=radio] + label {
font-weight: lighter;
border: 1px solid transparent;
border-bottom-color: #CAD5E0;
background-color: #f3f3f3;
padding: 8px;
padding-right: 10px;
padding-left: 10px;
cursor: pointer;
}
.tabs input[type=radio]:checked + label {
background-color: #ffffff;
border-top-right-radius: 8px;
border-top-left-radius: 8px;
font-weight: bold;
border-color: #CAD5E0;
border-bottom-color: #FFFFFF;
}

@ -1 +0,0 @@
.main .pane {display:block}

@ -1,3 +0,0 @@
@media (max-width: 480px) {
}
Loading…
Cancel
Save