hyparquet/demo/demo.css
2024-08-28 00:56:35 -07:00

276 lines
4.3 KiB
CSS

* {
box-sizing: border-box;
font-family: 'Mulish', 'Helvetica Neue', Helvetica, Arial, sans-serif;
margin: 0;
padding: 0;
}
body {
display: flex;
font-family: sans-serif;
height: 100vh;
width: 100vw;
}
nav {
border-right: 1px solid #ddd;
min-width: 320px;
overflow-x: hidden;
overflow-y: auto;
padding: 10px;
min-width: 0;
max-width: 40%;
width: 320px;
}
h1 {
font-size: 20pt;
}
h2 {
font-size: 12pt;
}
p {
margin: 10px 0;
}
.error {
color: #c11;
font-family: monospace;
white-space: pre-wrap;
}
#overlay {
align-items: center;
font-size: 125%;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
background-color: rgba(240, 240, 240, 0.6);
backdrop-filter: blur(4px);
display: none;
padding: 12px;
z-index: 40;
}
#dropzone {
display: flex;
flex: 1;
max-width: 100vw;
}
#content {
display: flex;
flex-direction: column;
flex: 1;
min-width: 0;
overflow: auto;
}
#welcome {
border: 2px dashed #08e;
border-radius: 10px;
color: #444;
margin: 10px;
padding: 10px;
align-items: center;
cursor: pointer;
display: flex;
flex: 1;
font-size: 20px;
justify-content: center;
}
input[type="file"] {
display: none;
}
#overlay {
font-size: 125%;
justify-content: center;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
background-color: rgba(240, 240, 240, 0.6);
backdrop-filter: blur(4px);
display: none;
padding: 12px;
z-index: 40;
}
.over #overlay {
display: flex;
}
/* table */
.table-container {
display: flex;
flex-direction: column;
min-height: 0;
flex: 1;
position: relative;
}
.table-scroll {
flex: 1;
overflow: auto;
}
.table-scroll > div {
position: relative;
}
.table-scroll .table {
position: absolute;
}
table {
border-collapse: separate;
border-spacing: 0;
}
table:focus-visible {
outline: none;
}
th {
background-color: #f8f8f8;
border: 1px solid #ddd;
padding: 8px;
text-align: left;
background-color: #eaeaeb;
border: none;
border-top: 4px solid #706fb1;
border-bottom: 2px solid #c9c9c9;
box-sizing: content-box;
color: #444;
position: sticky;
top: -1px; /* fix 1px gap above thead */
user-select: none;
}
th, td {
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
height: 32px;
max-width: 1000px; /* prevent columns expanding */
padding: 4px 12px;
text-align: left;
text-overflow: ellipsis;
overflow: hidden;
white-space: pre-wrap;
}
/* column resize */
.table thead span {
position: absolute;
border-right: 1px solid #ddd;
top: 0;
right: 0;
bottom: 0;
width: 8px;
cursor: col-resize;
transition: background-color 0.2s ease;
}
.table thead span:hover {
background-color: #aab;
}
/* row numbers */
td:first-child {
background-color: #eaeaeb;
border-right: 1px solid #ddd;
color: #888;
font-size: 10px;
padding: 0 2px;
position: sticky;
left: 0;
text-align: center;
user-select: none;
min-width: 32px;
max-width: none;
width: 32px;
}
/* table corner */
.table-corner {
background-color: #e4e4e6;
border-right: 1px solid #ccc;
position: absolute;
height: 44px;
width: 32px;
top: 0;
left: 0;
z-index: 15;
box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.2);
}
/* mock row numbers */
.mock-row-label {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
background: #eaeaeb;
z-index: -10;
}
#filename {
font-size: 10pt;
margin-top: 20px;
}
.sidebar {
word-break: break-all;
}
.sidebar a {
color: #445;
text-decoration: none;
}
.sidebar a:hover {
text-decoration: underline;
}
.layout,
.layout div {
background-color: rgba(100, 80, 180, 0.05);
border: 1px solid #ccc;
border-radius: 4px;
font-size: 12px;
margin-top: 4px;
padding: 4px;
word-break: break-all;
}
.cell {
display: flex;
}
.cell label {
flex: 1;
font-size: 12px;
font-weight: normal;
justify-content: flex-start;
}
nav ul,
.layout div ul {
list-style: none;
}
.layout div li {
font-size: 10px;
padding: 2px 4px;
text-align: right;
}
.collapsed > :not(:first-child) {
display: none;
}
.layout h2 {
cursor: pointer;
user-select: none;
}
.layout h2::before {
content: "▼";
display: inline-block;
font-size: 10px;
margin: 0 4px;
vertical-align: middle;
}
.layout.collapsed h2::before {
content: "▶";
}
.layout pre {
white-space: pre-wrap;
word-break: break-all;
}