UNPKG

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
: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%; } }