/* ======== Font Declarations ======== */ @font-face { font-family: 'Karmatic Arcade'; src: url('dat/ka1-webfont.eot'); src: url('dat/ka1-webfont.eot?#iefix') format('embedded-opentype'), url('dat/ka1-webfont.woff2') format('woff2'), url('dat/ka1-webfont.woff') format('woff'), url('dat/ka1-webfont.ttf') format('truetype'), url('dat/ka1-webfont.svg#dat/ka1regular') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Arcadepix Plus'; src: url('dat/arcadepix_plus-webfont.eot'); src: url('dat/arcadepix_plus-webfont.eot?#iefix') format('embedded-opentype'), url('dat/arcadepix_plus-webfont.woff2') format('woff2'), url('dat/arcadepix_plus-webfont.woff') format('woff'), url('dat/arcadepix_plus-webfont.ttf') format('truetype'), url('dat/arcadepix_plus-webfont.svg#dat/arcadepix_plusregular') format('svg'); font-weight: normal; font-style: normal; } /* ======== HTML/Body/Content ======== */ html, body { margin: 0; padding; 0; width: 100%; height: 100%; } #content { width: 100%; height: 100%; } * { box-sizing: border-box; } /* ======== Flex Containers ======== */ .vbox { flex-grow: 1; flex-shrink: 1; flex-basis: 0; display: flex; flex-direction: column; align-items: stretch; align-content: stretch; } .hbox { flex-grow: 1; flex-shrink: 1; flex-basis: 0; display: flex; flex-direction: row; align-items: stretch; align-content: stretch; } .item { flex-grow: 1; flex-shrink: 1; flex-basis: 0; } /* ======== Views ======== */ #menu { flex-grow: 0; background-color: #ddd; border-bottom: 1px solid #bbb; } #pages { display: inline-flex; padding-top: 1px; flex-wrap: wrap; background-color: #999; } #entries { flex-grow: 1; flex-shrink: 1; display: flex; } #tabular_sets { flex-grow: 1; border: 1px solid blue; } /* ======== Flex Table ======== */ .row { display: flex; flex-grow: 1; align-items: stretch; align-content: stretch; position: relative; margin: 0; padding: 0; } .cell { position: relative; flex-grow: 2; flex-shrink: 2; flex-basis: 0; padding: 0; } .cell:after { position: absolute; left: 0; top: 0; display: block; width: 100%; height: 100%; border-top: 1px solid rgba(128,128,255,0.5); border-bottom: 1px solid rgba(128,128,255,0.5); border-left: 1px solid rgba(128,128,128,0.5); border-right: 1px solid rgba(128,128,128,0.5); } /* ======== Buttons ======== */ .button { display: inline-block; width: 16px; height: 16px; flex: 1; background-size: 500%; background-image: url('dat/icons.svg'); cursor: pointer; } .button.new { width: 24px; height: 24px; background-position: 0% 100%; } .button.load { width: 24px; height: 24px; background-position: 25% 100%; } .button.save { width: 24px; height: 24px; background-position: 50% 100%; } .button.close { background-position: 75% 0%; } .button.add { display: block; width: 16px; height: 16px; background-position: 25% 50%; } .button.rem { display: block; width: 16px; height: 16px; background-position: 50% 50%; } .button.conf { display: block; width: 16px; height: 16px; background-position: 0% 75%; } /* ======== Graph View Head ======== */ #graph_head { position: relative; padding-bottom: 1em; flex-grow: 2; flex-shrink: 2; display: flex; flex-direction: column; align-items: stretch; align-content: stretch; } /* ======== Graph View ======== */ #graph { position: relative; padding-bottom: 1em; flex-grow: 2; flex-shrink: 2; display: flex; flex-direction: column; align-items: stretch; align-content: stretch; } #graph .cell:after { content: ''; border-bottom: 1px solid rgba(160, 160, 255, 1px); } #graph #first.cell { flex-grow: 1; flex-shrink: 1; flex-basis: 0; } #graph #first.cell:after { border: 0; } #graph #first .cell_text { font-family: 'Karmatic Arcade'; font-size: 20px; position: absolute; width: 3em; right:1em; text-align: right; bottom: 0; margin-bottom: -0.5em; vertical-align: bottom; border: 0; } #graph #last { flex-grow: 1; flex-shrink: 1; } #graph #last.cell:after { border: 0; } /* maximum weight row */ #graph #first.row .cell:after { border: 0; } #graph:after { font-family: 'Karmatic Arcade'; content: 'LET\'S GET SHREDDED'; font-size: calc(4vw + 4vh + 2vmin); position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(-15deg); opacity: 0.1; } #graph .node { z-index: 1000; position: absolute; left: -0.25em; margin-bottom: -0.25em; bottom: 0; width: 0.5em; height: 0.5em; border-radius: 0.5em; background-color: blue; transition: width 0.25s, height 0.25s, left 0.25s, margin-bottom 0.25s; cursor: move; } #graph .node:hover { width: 1em; height: 1em; left: -0.5em; margin-bottom: -0.5em; } #graph .node .text { opacity: 0; position: absolute; left: 50%; top: 50%; text-align: center; font-family: 'Arcadepix Plus'; font-size: 0px; text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white; transition: left 0.25s, top 0.25s, font-size 0.25s, opacity 0.25s; min-width: 1em; cursor: default; } #graph .node:hover .text { left: 0%; top: -100%; font-size: 12pt; opacity: 1; } #graph .line { } #graph .button.add { position: absolute; right: 0; top: 40%; display: block; width: 32px; height: 32px; z-index: 1000; } #graph .button.rem { position: absolute; right: 32px; top: 40%; display: block; width: 32px; height: 32px; z-index: 1000; } /* ======== Tabular View Head ======== */ #tabular_head { position: relative; display: display; overflow: auto; } #tabular_head .cell { margin: 0; padding: 0; margin-top: -1px; margin-left: -1px; border-top: 1px solid rgba(128,128,255,0.5); border-bottom: 1px solid rgba(128,128,255,0.5); border-left: 1px solid rgba(128,128,128,0.5); border-right: 1px solid rgba(128,128,128,0.5); flex-shrink: 0.5; } #tabular_head input { box-sizing: border-box; width: 100%; font-family: 'Arcadepix Plus'; font-size: 12pt; text-align: left; margin: 0; padding: 0;border: 0; background-color: transparent; } #tabular_head .button.add { position: absolute; right: 0; top: 0; display: block; width: 16px; height: 16px; } #tabular_head .button.rem { position: absolute; right: 0; top: 0; display: block; width: 16px; height: 16px; } #tabular_head .button.conf { position: absolute; right: 16px; top: 0; display: block; width: 16px; height: 16px; } /* ======== Tabular View ======== */ #tabular { position: relative; overflow: hidden; display: display; } #tabular .cell { margin: 0; padding: 0; margin-top: -1px; margin-left: -1px; border-top: 1px solid rgba(128,128,128,0.5); border-bottom: 1px solid rgba(128,128,128,0.5); border-left: 1px solid rgba(128,128,128,0.5); border-right: 1px solid rgba(128,128,128,0.5); text-align: center; flex-shrink: 0.5; } #tabular input { box-sizing: border-box; width: 100%; font-family: 'Arcadepix Plus'; font-size: 12pt; text-align: center; margin: 0; padding: 0;border: 0; background-color: transparent; } #tabular .cell#last { display: none; } /* ======== Entries View Head ======== */ #entries_head { position: relative; display: flex; flex-grow: 0.075; flex-shrink: 0.075; flex-direction: column; align-items: stretch; align-content: stretch; } #entries_head .cell { position: relative; display: flex; flex-grow: 1; flex-shrink: 1; font-family: 'Karmatic Arcade'; font-size: 10px; } #entries_head #cell_exercises { text-align: left; } #entries_head #cell_entries { text-align: right; } #entries_head #cell_entries:after { content: ''; display: block; position: absolute; left: 100%; margin-left:-8px; margin-bottom: 0; top: 0; height: 0; width: 0; border: 0; border-top: 8px outset transparent; border-left: 4px inset #fff; border-bottom: 8px outset transparent; } /* ======== Entries View ======== */ #entries { position: relative; display: flex; flex-grow: 0.075; flex-shrink: 0.075; flex-direction: column; align-items: stretch; align-content: stretch; } #entries .cell { position: relative; display: flex; flex-grow: 1; flex-shrink: 1; } #entries .cell:after { content: ''; display: block; position: absolute; left: 50%; margin-left:-8px; margin-bottom: -32px; top: -75%; height: 50%; width: 0; border: 0; border-left: 8px outset transparent; border-bottom: 4px outset rgba(128, 128, 128, 1.0); border-right: 8px inset transparent; } #entries .cell:before { content: ''; box-sizing: border-box; display: block; position: absolute; width: 100%; height: 25%; bottom: 0; border-left: 16px outset transparent; border-bottom: 4px outset rgba(128, 128, 128, 0.25); border-right: 16px inset transparent; z-index: -1; } #entries input { box-sizing: border-box; width: 100%; font-family: 'Arcadepix Plus'; font-size: 12pt; text-align: center; margin: 0; padding: 0; border: 0; background-color: transparent; } #entries .cell#last { display: none; } #entries #edit_button { background-color: #11DD22; } /* ======== Pages tabs ======== */ #pages input { cursor: pointer; border: 0; background: transparent; font-family: 'Arcadepix Plus'; font-size: 12pt; } #pages .tab { display: flex; align-items: center; position: relative; background-color: #ddd; border: 1px solid #ccc; border-bottom: 0; } #pages .tab.selected { background-color: #fff; } #pages .tab:after { position: absolute; content: ''; bottom: -1px; left: 0; display: block; width: 100%; height: 1px; } #pages .tab.selected:after { background-color: #fff; } #pages input[type="text"] { cursor: auto; } #pages button { }