canvas-datagrid
Version:
Canvas based data grid web component. Capable of displaying millions of contiguous hierarchical rows and columns without paging or loading, on a single canvas element.
312 lines (310 loc) • 9.02 kB
CSS
:root {
--color: #2980B9;
--highlight: #E04A21;
--background: #ECF0F1;
--accent: #354B61;
--header-background: #2C3E50;
--header-color: #C6C8C9;
--header-accent: #2980B9;
--code-color: #333;
--code-background: #EEE;
}
body, html {
background: var(--background);
color: var(--color);
margin: 0;
padding: 0;
min-height: 100%;
height: 100%;
overflow: hidden;
font-family: Verdana, Tahoma, sans-serif;
}
a {
color: var(--color);
}
.header {
text-shadow: 0px 4px 3px rgba(0,0,0,0.4),
0px 8px 13px rgba(0,0,0,0.1),
0px 18px 23px rgba(0,0,0,0.1);
}
.toc-class-heading, .header {
box-shadow: 0px 3px 5px rgba(0,0,0,0.4),
0px 6px 13px rgba(0,0,0,0.1),
0px 18px 27px rgba(0,0,0,0.1);
}
.child-topic {
margin: 15px;
padding-bottom: 10px;
box-shadow: 0px 4px 3px rgba(0,0,0,0.4),
0px 8px 13px rgba(0,0,0,0.1),
0px 18px 23px rgba(0,0,0,0.1);
}
.inline-code {
background: var(--header-color);
}
.toc-member-heading {
font-size: 14px;
margin: 0;
background: var(--header-background);
color: var(--header-color);
padding-left: 10px;
margin-bottom: 5px;
margin-top: 5px;
}
.toc-link {
font-size: 12px;
cursor: pointer;
}
.toc-class-heading {
background: var(--accent);
color: var(--header-color);
font-size: 16px;
margin: 0;
padding-left: 3px;
cursor: pointer;
margin-top: 10px;
margin-bottom: -5px;
}
.toc-class-heading:first-of-type {
margin-top: 0;
}
.toc-class {
padding-left: 10px;
padding-bottom: 4px;
}
.toc-item {
padding-left: 10px;
}
.toc-list a, .toc-list ul {
color: var(--header-color);
}
.toc-list ul {
list-style-type: none;
padding-left: 7px;
padding-bottom: 7px;
}
.topic-memberof {
margin-left: 15px;
margin-bottom: 15px;
}
.topic-syntax-type, .topic-syntax-returns {
color: var(--header-accent);
}
.topic-syntax {
margin-left: 60px;
color: var(--header-background);
}
.toc-member-item {
padding-left: 10px;
}
.header a {
color: var(--header-color);
text-decoration: none;
}
.header {
margin: 0;
background: var(--header-background);
padding-left: 10px;
font-size: 19px;
height: 23px;
border-bottom: solid 1px #333;
}
.toc-list {
padding-left: 0;
margin-top: 0;
list-style-type: none;
}
.toc-subclassname {
color: var(--highlight);
font-size: 10px;
text-shadow: none;
}
.member-cell {
background: var(--background);
color: var(--color);
border: solid 1px var(--accent);
padding: 4px;
}
.member-header-cell {
background: var(--accent);
color: var(--header-color);
border: solid 1px var(--accent);
}
.member-table {
background: var(--header-accent);
border-color: var(--header-accent);
border-collapse: collapse;
font-size: 12px;
margin: 25px;
}
.member-cell-table {
vertical-align: top;
padding: 0;
border: 0;
}
.member-cell .member-table {
margin: 0;
width: 100%;
}
.child-member-heading {
padding-left: 40px;
padding-bottom: 5px;
padding-top: 5px;
margin-top: 25px;
margin-left: 25px;
background: var(--accent);
color: var(--header-color);
font-size: 14px;
}
.member-heading {
padding-left: 20px;
padding-bottom: 5px;
padding-top: 5px;
background: var(--accent);
color: var(--header-color);
font-size: 20px;
}
.topic-heading {
background: var(--accent);
color: var(--header-color);
margin: 0;
padding-left: 20px;
font-size: 17px;
border: solid 1px var(--accent);
}
.toc a {
color: var(--color);
}
.toc {
display: inline-block;
margin: 0;
background: var(--background);
border-color: var(--header-accent);
color: var(--color);
height: calc(100% - 26px);
overflow-y: auto;
font-size: 14px;
width: 270px;
}
.topic {
display: inline-block;
height: calc(100% - 26px);
margin: 0;
font-size: 14px;
background: var(--background);
border-color: var(--accent);
color: var(--color);
overflow-y: scroll;
width: calc(100% - 270px);
}
.tutorial-description:before {
content: 'Description';
display: block;
font-size: 16px;
font-style: bold;
margin-bottom: 5px;
}
.tutorial-description {
font-size: 12px;
}
.topic-description, .tutorial-description {
margin: 15px;
}
.tutorial-heading {
margin-bottom: 10px;
}
.tutorial-button:focus {
outline:0;
}
.tutorial-button {
margin-left: 15px;
margin-right: -5px;
margin-top: 0;
margin-bottom: 0;
background: var(--header-color);
color: var(--color);
border-width: 1px;
cursor: pointer;
padding-right: 6px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4);
}
.tutorial-code {
height: 250px;
margin: 15px;
margin-top: 10px;
}
.tutorial-grid {
margin: 15px;
}
.tutorial-error-msg {
color: var(--highlight);
font-size: 12px;
}
.tutorial-error {
margin: 15px;
background: var(--background);
color: var(--color);
border: solid 1px var(--highlight);
display: none;
padding: 5px;
}
.topic-toc-heading {
margin-left: 15px;
margin-top: 30px;
}
.topic-toc {
margin-bottom: 50px;
}
.jsfiddlelogo {
background-image: url('data:image/png;base64,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');
background-repeat: no-repeat;
background-size: 16px;
background-position: 3px 3px;
padding-left: 21px;
}
.topic-description pre {
background: var(--code-background);
color: var(--code-color);
padding: 5px;
border: solid 1px var(--accent);
}
.topic-description h2 {
background: var(--accent);
color: var(--header-color);
margin: 0;
padding-left: 20px;
font-size: 17px;
border: solid 1px var(--accent);
}
.topic-description table {
border-collapse: collapse;
}
.topic-description table th {
background: var(--accent);
color: var(--header-color);
border: solid 1px var(--accent);
}
.topic-description table td {
background: var(--background);
color: var(--color);
border: solid 1px var(--accent);
padding: 4px;
}
.top-link {
position: fixed;
left: 272px;
top: 23px;
text-decoration: none;
display: none;
}
@media (max-width: 815px) {
.top-link {
left: 2px;
}
.toc {
width: 0;
}
.topic {
width: 100%;
}
}