|
Before Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 512 B |
|
Before Width: | Height: | Size: 168 B |
|
Before Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 460 B |
|
Before Width: | Height: | Size: 240 B |
|
Before Width: | Height: | Size: 1.0 KiB |
@ -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) {
|
|
||||||
|
|
||||||
}
|
|
||||||