refactor css into sub-files

This commit is contained in:
sawka 2023-04-25 12:27:41 -07:00
parent e4a57376f8
commit f2b7637263
11 changed files with 3558 additions and 3557 deletions

419
src/cmdinput.less Normal file
View File

@ -0,0 +1,419 @@
.cmd-input-info, .cmd-history {
&::-webkit-scrollbar {
background-color: #777;
width: 5px;
height: 5px;
}
&::-webkit-scrollbar-thumb {
background: white;
}
}
.info-message {
position: relative;
font-weight: normal;
font-size: 12px;
color: @term-white;
.message-content {
position: absolute;
display: none;
flex-direction: row;
align-items: flex-start;
top: -6px;
left: -6px;
padding: 5px;
border: 1px solid #777;
background-color: #444;
border-radius: 5px;
z-index: 5;
overflow: hidden;
.info-icon {
margin-right: 5px;
width: 12px;
flex-shrink: 0;
}
.info-children {
flex: 1 0 0;
overflow: hidden;
}
}
&:hover {
.message-content {
display: flex;
}
}
}
.cmd-input {
border-radius: 0;
border-top: 4px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-bottom-right-radius: 10px;
max-height: max(300px, 40%);
display: flex;
flex-direction: column;
position: absolute;
bottom: 0;
width: 100%;
padding: 20px 25px 20px 20px;
z-index: 100;
&.has-info {
padding-top: 10px;
}
.focus-indicator {
height: 90%;
top: 5%;
left: 4px;
}
&.has-history {
padding-top: 5px;
height: max(300px, 40%);
}
&.has-remote {
max-height: max(300px, 70%);
}
.remote-status-warning {
display: flex;
flex-direction: row;
color: @term-yellow;
align-items: center;
font-size: 14px;
.button {
margin-left: 10px;
}
.remote-name {
.mono-font(14px)
}
}
.input-minmax-control {
position: absolute;
top: 5px;
right: 5px;
color: @term-white;
font-size: 12px;
padding: 5px;
cursor: pointer;
}
.cmd-input-grow-spacer {
flex-grow: 1;
}
.cmd-input-context {
.mono-font();
color: #fff;
white-space: nowrap;
}
.cmd-input-field {
position: relative;
.cmd-input-control {
line-height: 0;
}
.cmd-hints {
position: absolute;
bottom: -14px;
right: 0px;
}
textarea {
color: white;
background-color: black;
.mono-font();
padding-bottom: calc(0.5em - 1px);
padding-top: calc(0.5em - 1px);
resize: none;
overflow-wrap: anywhere;
&:active, &:focus {
border-color: white !important;
}
&.display-disabled {
background-color: #444;
}
}
input.history-input {
border: 0;
padding: 0;
height: 0;
}
.cmd-quick-context .button {
.mono-font();
background-color: #000 !important;
color: white;
}
&.inputmode-global .cmd-quick-context .button {
color: black;
background-color: @tab-green !important;
}
&.inputmode-comment .cmd-quick-context .button {
color: black;
background-color: @tab-blue !important;
}
.cmd-exec .button {
background-color: #000 !important;
color: #d3d7cf;
}
}
.cmd-history {
color: @term-white;
margin-bottom: 5px;
overflow: auto;
flex-shrink: 1;
.history-title {
position: absolute;
z-index: 102;
top: 5px;
left: 20px;
background-color: black;
.mono-font(12px, 700);
color: @soft-blue;
padding-bottom: 4px;
display: flex;
flex-direction: row;
width: calc(100% - 40px);
overflow-x: auto;
.history-opt {
white-space: nowrap;
}
.history-clickable-opt {
white-space: nowrap;
cursor: pointer;
}
.grow-spacer {
flex: 1 0 10px;
}
.spacer {
flex: 0 0 10px;
}
}
.history-items {
margin-top: 24px;
color: @term-white;
.mono-font(12px);
padding-bottom: 6px;
.history-line {
white-space: pre;
}
.history-item.history-haderror {
color: mix(@term-red, @term-white, 50%);
}
.history-line:first-child {
margin-left: 0 !important;
}
.history-item {
padding-left: 5px;
cursor: pointer;
&:hover {
background-color: #222;
}
}
.history-item.is-selected {
font-weight: bold;
color: @term-bright-white;
background-color: #444;
}
.history-item.is-selected.history-haderror {
color: mix(@term-bright-red, @term-bright-white, 50%);
}
}
}
.cmd-input-info {
flex-shrink: 1;
overflow-y: auto;
margin-bottom: 5px;
.info-msg {
.mono-font(14px, 400);
color: @soft-blue;
padding-bottom: 2px;
a {
color: @term-blue;
}
}
.info-title {
.mono-font(14px, 700);
color: @soft-blue;
padding-bottom: 2px;
}
.info-lines {
.mono-font(12px);
color: @term-white;
white-space: pre;
padding-bottom: 6px;
}
.info-comps {
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding-bottom: 5px;
.mono-font(14px, 400);
.info-comp {
min-width: 200px;
color: @term-white;
margin-right: 10px;
&.has-space {
text-decoration: underline dotted #777;
}
}
.metacmd-comp {
color: @term-bright-green;
}
}
.info-error {
.mono-font(14px, 700);
color: @term-red;
padding-bottom: 2px;
}
.info-remote-showall {
table.remotes-table {
th {
color: white;
font-weight: bold;
}
th, td {
padding: 3px 8px 3px 8px;
}
td {
cursor: pointer;
}
tr:hover td {
background-color: #333;
}
}
}
.info-remote {
color: #d3d7cf;
.mono-font(12px);
.info-remote-title {
font-weight: bold;
color: @term-cyan;
}
.info-error, .info-msg {
margin-top: 5px;
padding: 5px;
}
.remote-field {
display: flex;
flex-direction: row;
.remote-field-def {
white-space: pre;
width: 120px;
}
.remote-field-val {
white-space: pre;
display: flex;
flex-direction: row;
}
}
.remote-input-field {
display: flex;
flex-direction: row;
height: 25px;
align-items: center;
.remote-field-label {
white-space: pre;
width: 140px;
font-weight: bold;
color: @term-bright-white;
}
.undo-icon {
margin-left: 4px;
cursor: pointer;
padding: 2px;
}
.remote-field-control {
&.text-control {
}
&.text-input {
input[type=text], input[type=number], input[type=password] {
background-color: black;
color: white;
width: 200px;
}
}
&.checkbox-input {
input[type=checkbox] {
position: relative;
top: 3px;
}
}
&.select-input {
select {
width: 200px;
background-color: black;
color: white;
}
}
}
}
}
.info-remote-showall {
color: #d3d7cf;
.mono-font(12px);
}
}
}

623
src/comps.less Normal file
View File

@ -0,0 +1,623 @@
.cmdstr-code {
position: relative;
display: flex;
flex-direction: row;
padding: 0px 10px 0px 0;
&.is-large {
.use-button {
height: 28px;
width: 28px;
}
.code-div code {
.mono-font(14px);
}
}
&.limit-height .code-div {
max-height: 58px;
}
&.limit-height.is-large .code-div {
max-height: 68px;
}
.use-button {
flex-grow: 0;
padding: 3px;
border-radius: 3px 0 0 3px;
font-size: 12px;
height: 22px;
width: 22px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
cursor: pointer;
background-color: black;
&:hover {
background-color: #777;
}
}
.code-div {
background-color: black;
display: flex;
flex-direction: row;
min-width: 100px;
overflow: auto;
border-left: 1px solid #777;
code {
flex-shrink: 0;
min-width: 100px;
color: white;
.mono-font(12px);
white-space: pre;
padding: 2px 8px 2px 8px;
background-color: black;
}
}
.copy-control {
width: 0;
position: relative;
display: block;
visibility: hidden;
.inner-copy {
position: absolute;
bottom: -1px;
right: -20px;
font-size: 9px;
padding: 2px;
padding-left: 4px;
cursor: pointer;
width: 20px;
background-color: black;
border: 1px solid #333;
color: #777;
&:hover {
color: white;
}
}
}
&:hover .copy-control {
visibility: visible !important;
}
}
.terminal-wrapper {
position: relative;
.term-block {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
z-index: 10;
}
.xterm-screen {
&::-webkit-scrollbar {
display: none;
}
}
&.focus .xterm {
.xterm-screen {
overflow-y: scroll;
overscroll-behavior: contain;
}
.xterm-viewport {
overscroll-behavior: contain;
}
}
&.focus .xterm-viewport {
&::-webkit-scrollbar {
background-color: #777;
width: 5px;
height: 5px;
}
&::-webkit-scrollbar-thumb {
background: white;
}
}
.xterm-viewport {
&::-webkit-scrollbar {
background-color: #222;
width: 5px;
height: 5px;
}
&::-webkit-scrollbar-thumb {
background: #555;
}
}
}
body .xterm .xterm-viewport {
overflow-y: auto;
width: calc(100% + 5px);
}
.checkbox-toggle {
position: relative;
display: inline-block;
width: 40px;
height: 23px;
input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
content: "";
cursor: pointer;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: #333;
transition: 0.5s;
border-radius: 33px;
}
.slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 3px;
bottom: 3px;
background-color: white;
transition: 0.5s;
border-radius: 50%;
}
input:checked + .slider {
background-color: @term-green;
}
input:checked + .slider:before {
transform: translateX(18px);
}
}
.button.is-prompt-green {
background-color: #222;
color: @term-white;
&:hover {
background-color: @term-green;
color: @term-bright-white;
}
}
.button.is-plain, .button.is-prompt-cancel {
background-color: #222;
color: @term-white;
&:hover {
background-color: #666;
color: @term-bright-white;
}
}
.button.is-prompt-danger {
background-color: #222;
color: @term-white;
&:hover {
background-color: @tab-red;
color: @term-bright-white;
}
}
.button.is-inline-height {
height: 22px;
}
.button input.confirm-checkbox {
margin-right: 5px;
}
.cmd-hints {
.mono-font(10px);
display: flex;
flex-direction: row;
.hint-item {
padding: 0px 5px 0px 5px;
border-radius: 0 0 3px 3px;
cursor: pointer;
}
.hint-item:not(:last-child) {
margin-right: 8px;
}
.hint-item.color-green {
color: black;
background-color: @tab-green;
&:hover {
color: white;
}
}
.hint-item.color-nohover-green {
color: black;
background-color: @tab-green;
cursor: default;
}
.hint-item.color-white {
color: black;
background-color: @term-white;
&:hover {
background-color: @term-bright-white;
}
}
.hint-item.color-nohover-white {
color: black;
background-color: @term-white;
cursor: default;
}
.hint-item.color-blue {
color: black;
background-color: @tab-blue;
&:hover {
color: white;
}
}
.hint-item.color-nohover-blue {
color: black;
background-color: @tab-blue;
cursor: default;
}
}
.markdown {
color: @term-white;
margin-bottom: 10px;
code {
background-color: black;
color: white;
.mono-font();
padding: 5px;
}
code.inline {
padding-top: 0;
padding-bottom: 0;
}
.title {
color: white;
margin-top: 16px;
line-height: 1.25;
margin-bottom: 8px;
}
strong {
color: white;
}
a {
color: #32afff;
}
ul {
list-style-type: disc;
list-style-position: outside;
margin-left: 16px;
}
ol {
list-style-position: outside;
margin-left: 19px;
}
blockquote {
margin: 4px 10px 4px 10px;
border-radius: 3px;
background-color: #444;
padding: 2px 4px 2px 6px;
}
pre {
background-color: inherit;
margin: 4px 10px 4px 10px;
padding: 2px 4px 2px 6px;
}
.title.is-1 {
font-size: 32px;
border-bottom: 1px solid #777;
padding-bottom: 6px;
}
.title.is-2 {
font-size: 24px;
border-bottom: 1px solid #777;
padding-bottom: 6px;
}
.title.is-3 {
font-size: 20px;
}
.title.is-4 {
font-size: 16px;
}
.title.is-5 {
font-size: 14px;
}
.title.is-6 {
font-size: 14px;
}
}
.markdown > *:first-child {
margin-top: 0 !important;
}
.copied-indicator {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: white;
opacity: 0;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
pointer-events: none;
.mono-font(12px);
animation-name: fade-in-out;
animation-duration: 0.3s;
}
.loading-spinner {
display: inline-block;
position: absolute;
top: calc(40% - 8px);
left: 30px;
width: 20px;
height: 20px;
div {
box-sizing: border-box;
display: block;
position: absolute;
width: 16px;
height: 16px;
margin: 2px;
border: 2px solid #777;
border-radius: 50%;
animation: loader-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
border-color: #777 transparent transparent transparent;
}
div:nth-child(1) {
animation-delay: -0.45s;
}
div:nth-child(2) {
animation-delay: -0.3s;
}
div:nth-child(3) {
animation-delay: -0.15s;
}
}
#measure {
position: absolute;
z-index: -1;
top: -5000px;
.mono {
.mono-font();
}
.pre {
white-space: pre;
}
}
.text-button {
.mono-font(12px, 700);
color: @term-white;
cursor: pointer;
background-color: #171717;
outline: 2px solid #171717;
&:hover, &:focus {
color: @term-white;
background-color: #333;
outline: 2px solid #333;
}
&.connect-button {
color: @term-green;
&:hover {
color: @term-green;
}
}
&.disconnect-button {
color: @term-red;
&:hover {
color: @term-red;
}
}
&.success-button {
color: @term-green;
&:hover {
color: @term-green;
}
}
&.error-button {
color: @term-red;
&:hover {
color: @term-red;
}
}
&.grey-button {
color: #666;
&:hover {
color: #666;
}
}
&.disabled-button {
&:hover, &:focus {
outline: none;
background-color: #171717;
}
cursor: default;
}
}
.focus-indicator {
position: absolute;
display: none;
width: 5px;
border-radius: 3px;
height: calc(100% - 20px);
top: 10px;
left: 0;
z-index: 8;
&.selected {
display: block;
background-color: #666 !important;
}
&.active, &.active.selected {
display: block;
background-color: @tab-blue !important;
}
&.active.selected.fg-focus {
display: block;
background-color: @tab-green !important;
}
}
.focus-parent:hover .focus-indicator {
display: block;
background-color: #222;
}
#main .term-prompt {
font-size: 14px;
i {
margin-right: 3px;
}
.term-prompt-branch {
color: @term-white;
}
.term-prompt-python {
color: @term-bright-magenta;
}
.term-prompt-remote {
i {
margin-right: 0;
}
}
.term-prompt-remote {
color: @term-bright-green;
&.color-green {
color: @term-bright-green;
}
&.color-red {
color: @term-bright-red;
}
&.color-blue {
color: @term-bright-blue;
}
&.color-yellow {
color: @term-bright-yellow;
}
&.color-magenta {
color: @term-bright-magenta;
}
&.color-cyan {
color: @term-bright-cyan;
}
&.color-white {
color: @term-bright-white;
}
&.color-orange {
color: @tab-orange;
}
}
.term-prompt-cwd {
color: @term-bright-green;
}
.term-prompt-end {
color: @term-bright-green;
}
}
.remote-status {
font-size: 8px;
margin-right: 5px;
position: relative;
top: -3px;
color: #c4a000;
&.status-init, &.status-disconnected {
color: #c4a000;
}
&.status-connecting {
color: #c4a000;
}
&.status-connected {
color: #4e9a06;
}
&.status-error {
color: #cc0000;
}
}

36
src/keyframes.less Normal file
View File

@ -0,0 +1,36 @@
@keyframes loader-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
80% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-in-out {
0% {
opacity: 0;
}
50% {
opacity: 0.5;
}
100% {
opacity: 0;
}
}

532
src/lines.less Normal file
View File

@ -0,0 +1,532 @@
.line.line-text {
flex-direction: row;
padding-top: 5px;
.line-content {
display: flex;
flex-direction: column;
flex-grow: 1;
margin-left: 10px;
.text {
font-size: 1rem;
color: #ddd;
}
}
&.collapsed {
.meta {
display: none;
}
min-height: 20px;
}
&.collapsed.top-border {
min-height: 26px;
}
}
.line.line-selected {
&.line-focused {
outline-left: 3px solid blue;
}
}
.line.line-cmd {
flex-direction: column;
scroll-margin-bottom: 20px;
position: relative;
.avatar {
cursor: pointer;
height: 36px;
}
.line-header {
display: flex;
flex-direction: row;
height: 36px;
width: 100%;
&.is-expanded {
height: auto;
}
&.is-collapsed {
height: 24px;
}
&.is-expanded.is-collapsed {
height: auto;
}
.meta-wrap {
flex: 1 1 0px;
min-width: 0;
display: flex;
flex-direction: column;
justify-content: flex-start;
margin-left: 10px;
}
.collapsed-indicator + .meta-wrap {
margin-left: 0;
}
.line-icon {
display: block;
visibility: hidden;
cursor: pointer;
padding: 3px;
font-size: 1.5rem;
}
.line-bookmark:hover {
color: white;
}
.line-icon + .line-icon {
margin-left: 5px;
}
.line-icon.active {
visibility: visible;
display: block;
i.fa-star, i.fa-thumb-tack {
color: @term-bright-yellow;
}
i.fa-bookmark {
color: @term-bright-blue;
}
}
&:hover .line-icon {
visibility: visible;
display: block;
}
}
.meta.meta-line1 {
margin-left: 2px;
}
&.has-rtnstate .terminal-wrapper {
padding-bottom: 0;
margin-bottom: -5px;
}
.image-wrapper {
padding: 2px 10px 5px 4px;
margin: 4px 8px 0 -4px;
.loading-div {
height: 20px;
margin-left: 50px;
.mono-font();
}
&.collapsed {
height: 0;
padding: 0;
margin: 0;
overflow: hidden;
}
}
.terminal-wrapper {
background-color: #000;
padding: 2px 10px 5px 4px;
margin: 4px 8px 0 -4px;
align-self: flex-start;
&.zero-height {
padding: 0;
margin: 0;
}
&.collapsed {
height: 0;
padding: 0;
margin: 0;
overflow: hidden;
}
.terminal-connectelem {
overflow-y: hidden;
overflow-x: hidden;
}
.terminal {
margin-right: 8px; /* needed to show scrollbar */
}
&.cmd-done .terminal .xterm-cursor {
display: none;
}
.terminal-loading-message {
position: absolute;
top: calc(40% - 8px);
left: 50px;
height: 20px;
.mono-font();
}
}
.cmd-rtnstate {
position: relative;
.cmd-rtnstate-label {
position: relative;
z-index: 2;
.mono-font(9px);
margin-left: 10px;
padding: 2px 5px 2px 5px;
color: #666;
background-color: black;
display: inline-block;
}
.cmd-rtnstate-sep {
height: 1px;
border-bottom: 1px solid #222;
position: relative;
top: -8px;
width: min(300px, 50%);
margin-bottom: -3px;
}
.cmd-rtnstate-diff {
color: @term-white;
.mono-font(12px);
white-space: pre;
margin-left: 15px;
}
}
}
.line {
margin: 0px 5px 0px 5px;
padding: 10px 5px 0px 12px;
display: flex;
line-height: 1.25;
overflow: hidden;
flex-shrink: 0;
position: relative;
&.collapsed {
margin: 2px 5px 0px 5px;
padding: 0px 5px 0px 12px;
.avatar {
height: 20px;
width: 38px;
&.num-4 {
font-size: 13px;
}
&.num-5 {
font-size: 11px;
}
&.num-6 {
font-size: 9px;
}
}
.meta-wrap .meta.meta-line1 {
display: none;
}
.focus-indicator {
height: calc(100% - 8px);
top: 4px;
}
.line-icon {
padding-top: 0;
padding-bottom: 0;
font-size: 20px;
margin-top: -4px;
margin-bottom: -2px;
}
}
&.top-border, &.collapsed.top-border {
border-top: 1px solid #777;
padding-top: 5px;
margin-top: 5px;
}
&:nth-child(2) {
margin: 0px 5px 5px 5px;
padding: 0px 5px 5px 12px;
border-top: none;
}
&:hover .meta .termopts {
display: block;
}
&:hover .meta .settings {
display: block;
}
.avatar {
max-height: 38px;
width: 38px;
background-color: #555;
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
font-weight: bold;
color: white;
font-size: 16px;
border-radius: 5px;
position: relative;
&.rtnstate {
border: 1px solid white;
}
.status-icon {
font-size: 8px;
position: absolute;
top: 2px;
right: 2px;
}
.comment-icon {
font-size: 10px;
position: absolute;
top: 0px;
right: -4px;
}
&.num-4 {
font-size: 13px;
}
&.num-5 {
font-size: 11px;
}
&.num-6 {
font-size: 9px;
}
&.status-done {
background-color: #555;
}
&.ephemeral {
opacity: 0.5;
outline: 1px solid white;
}
&.status-error {
.status-icon {
color: #cc0000;
}
}
&.status-hangup {
.status-icon {
color: @term-yellow;
}
}
&.status-running {
background-color: @soft-blue;
}
&.status-waiting {
background-color: @term-yellow;
}
&.status-detached {
background-color: @soft-blue;
.status-icon {
top: 3px;
right: 3px;
color: white;
}
}
}
.collapsed-indicator {
width: 20px;
font-size: 20px;
color: white;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
margin-left: 2px;
margin-right: 2px;
position: relative;
top: -2px;
}
.meta {
display: flex;
flex-direction: row;
font-size: 1rem;
margin-top: -4px;
.user {
color: lighten(@soft-blue, 10%);
font-weight: bold;
margin-top: 1px;
margin-right: 10px;
}
.ts, .termopts, .renderer {
display: flex;
color: #aaa;
margin-top: 5px;
.mono-font(11px);
}
.renderer {
color: #aaa;
margin-left: 3px;
margin-top: 5px;
.mono-font(11px);
i {
display: inline-block;
font-size: 9px;
margin-right: 2px;
margin-top: 2px;
}
}
.settings {
display: none;
color: #aaa;
font-size: 11px;
margin-left: 5px;
margin-top: 5px;
cursor: pointer;
}
.termopts {
color: #aaa;
margin-top: 5px;
.mono-font(11px);
display: none;
.resize-button {
cursor: pointer;
padding-left: 3px;
padding-right: 3px;
}
}
.metapart-mono {
color: #ddd;
margin-left: 8px;
margin-top: 4px;
white-space: nowrap;
.mono-font(14px);
}
.cmdtext {
color: #fff;
font-size: 16px;
font-weight: bold;
overflow: hidden;
margin-left: 0;
}
.cmdtext-overflow {
flex-shrink: 0;
padding-right: 2px;
color: white;
cursor: pointer;
.mono-font(16px);
margin-top: 4px;
}
}
.cmdtext-expanded-wrapper {
margin-top: 2px;
padding-left: 6px;
overflow-y: auto;
max-height: 54px;
border-left: 2px solid #333;
margin-left: 3px;
.cmdtext-expanded {
white-space: pre;
.mono-font(14px);
color: white;
padding-bottom: 5px;
}
}
.cmd-hints {
position: absolute;
bottom: 0px;
right: 0px;
display: none;
.hint-item {
border-radius: 3px;
}
}
&:hover .cmd-hints {
display: flex;
}
}
.line.line-invalid {
color: @term-white;
margin-left: 5px;
}
.lines {
display: flex;
flex-direction: column;
height: 80vh;
overflow-y: scroll;
padding: 10px 0 10px 0;
flex-grow: 1;
position: relative;
.line:nth-child(2) {
padding-top: 1px;
}
.lines-spacer {
flex-grow: 1;
}
.line-sep {
display: flex;
align-items: center;
.mono-font(11px);
color: #aaa;
}
.line-sep::before, .line-sep::after {
content: '';
height: 2px;
background-color: #ccc;
flex-grow: 1;
}
.line-sep::before {
margin-right: 1rem;
}
.line-sep::after {
margin-left: 1rem;
}
}

605
src/modals.less Normal file
View File

@ -0,0 +1,605 @@
// modal css (also includes settings-field)
.modal {
z-index: 105;
.modal-background {
background-color: rgba(10,10,10,.6);
}
}
.tos-modal {
a:hover {
text-decoration: underline;
}
.content {
.mono-font(13px);
}
}
.disconnected-modal {
.modal-content {
footer {
.footer-text-link {
.mono-font(12px);
color: @term-white;
cursor: pointer;
}
}
}
.inner-content {
.ws-log {
padding: 5px;
background-color: black;
height: 250px;
overflow: auto;
.ws-logline {
.mono-font(12px);
color: @term-white;
}
}
}
}
.modal.prompt-modal.client-stop-modal {
footer {
justify-content: center;
}
.inner-content {
display: flex;
flex-direction: column;
padding: 20px;
.progress-container {
margin-top: 20px;
}
.progress-text {
color: @term-white;
align-self: center;
font-size: 12px;
}
}
}
.modal.alert-modal {
z-index: 205;
footer {
justify-content: center;
.button {
margin-left: 20px;
}
.button:first-child {
margin-left: 0;
}
}
}
.modal.settings-modal {
footer {
justify-content: center;
.button {
margin-left: 20px;
}
.button:first-child {
margin-left: 0;
}
}
.dropdown {
.dropdown-menu .dropdown-content {
.dropdown-item {
color: white;
cursor: pointer;
&:hover {
background-color: #333;
}
}
}
.dropdown-menu {
max-height: 120px;
overflow: auto;
}
}
}
.modal.prompt-modal {
.modal-content {
border-radius: 5px;
border: 5px solid #333;
}
header {
background-color: #000;
display: flex;
flex-direction: row;
padding: 10px;
position: relative;
.modal-title {
color: @prompt-green;
.mono-font(24px);
}
.close-icon {
position: absolute;
right: 10px;
top: 6px;
cursor: pointer;
padding: 3px;
color: #aaa;
font-size: 20px;
&:hover {
color: #fff;
}
}
}
.inner-content {
background-color: #222;
padding: 15px 10px 15px 10px;
color: @term-white;
margin: 0;
&.is-hidden {
display: none;
}
}
footer {
display: flex;
flex-direction: row;
align-items: center;
color: @term-white;
background-color: #222;
padding: 15px 10px 10px 10px;
border-top: 1px solid #666;
}
}
.modal.prompt-modal.remotes-modal {
.modal-content {
min-width: 850px;
}
.inner-content {
display: flex;
flex-direction: row;
align-items: stretch;
padding: 0;
max-height: 80vh;
.remotes-menu {
flex: 0 0 200px;
min-height: 450px;
border-right: 1px solid #666;
overflow-y: auto;
height: 100px;
.remote-menu-item {
border-top: 1px solid #666;
padding: 5px;
display: flex;
flex-direction: row;
cursor: pointer;
&.add-remote {
font-size: 13px;
padding: 10px 5px 10px 5px;
}
&:hover {
background-color: #333;
}
&.is-selected {
background-color: @active-menu-color;
.remote-name .remote-name-secondary {
color: white;
}
}
&:first-child {
border-top: 0;
}
.remote-status-light {
width: 15px;
margin-top: -2px;
}
.remote-name {
flex-grow: 1;
.remote-name-primary {
font-size: 12px;
font-weight: bold;
}
.remote-name-secondary {
font-size: 11px;
color: #777;
}
}
}
}
.remote-detail {
padding: 10px;
flex-grow: 1;
font-size: 12px;
display: flex;
flex-direction: column;
.settings-field {
margin-top: 5px;
}
* {
flex-shrink: 0;
}
.detail-subtitle {
font-size: 18px;
margin-bottom: 10px;
margin-top: 10px;
}
.title {
color: white;
padding-bottom: 8px;
margin-bottom: 0;
border-bottom: 1px solid #777;
}
.terminal-wrapper {
margin-left: 0;
margin-bottom: 0;
&.has-message {
margin-top: 0;
}
box-shadow: none;
border: 1px solid #777;
}
.action-buttons {
display: flex;
flex-direction: row;
gap: 10px;
margin-top: 2px;
}
.remote-message {
margin-top: 5px;
padding: 8px;
border-radius: 5px 5px 0 0;
background-color: #333;
i.fa-check {
color: @term-green;
}
&.is-ok {
}
.message-row {
display: flex;
flex-direction: row;
align-items: center;
}
.remote-status {
position: relative;
top: -1px;
}
.button {
height: 22px;
}
}
.settings-field {
.update-auth-button {
visibility: hidden;
}
&:hover {
.update-auth-button {
visibility: visible;
}
.hide-hover {
display: none;
}
}
}
&.auth-editing, &.create-remote {
.settings-field.align-top {
align-items: flex-start;
.settings-label {
margin-top: 8px;
}
.settings-input {
align-items: flex-start;
}
}
.settings-label {
display: flex;
flex-direction: row;
align-items: center;
}
.settings-field .settings-input .undo-icon {
cursor: pointer;
font-size: 18px;
margin-left: 5px;
}
.editremote-dropdown .dropdown-trigger button {
width: 120px;
justify-content: flex-start;
}
.settings-field .raw-input {
width: 120px;
}
.settings-input input {
width: 250px;
}
.dropdown .dropdown-trigger button {
font-size: 12px;
}
.dropdown .dropdown-item {
font-size: 12px;
padding: 5px 5px 5px 12px;
}
.settings-input {
.info-message {
margin-left: 22px;
}
}
.settings-label {
.info-message {
margin-right: 15px;
}
}
}
}
}
.terminal-wrapper {
position: relative;
background-color: #000;
padding: 2px 10px 5px 4px;
margin: 5px 5px 10px 5px;
box-shadow: 0 0 1px 1px rgba(255, 255, 255, 0.3);
&.focus {
box-shadow: 0 0 3px 3px rgba(255, 255, 255, 0.3);
}
.term-tag {
position: absolute;
top: 0;
right: 0;
background-color: @term-red;
color: white;
z-index: 110;
padding: 4px;
.mono-font(10px);
}
}
}
.modal.welcome-modal {
footer {
.prev-button {
margin-left: 15px;
width: 100px;
}
.prev-spacer {
margin-left: 15px;
width: 100px;
}
.next-button {
margin-right: 15px;
width: 100px;
}
.dots {
font-size: 10px;
i {
margin-left: 5px;
}
}
}
}
.client-settings-modal {
.settings-field {
.settings-label {
width: 150px;
}
}
}
.settings-field {
display: flex;
flex-direction: row;
align-items: center;
font-size: 14px;
&.settings-field.sub-field {
.settings-label {
font-weight: normal;
font-size: 13px;
text-align: right;
padding-right: 20px;
}
}
&.settings-error {
font-size: 14px;
color: @term-red;
margin-top: 20px;
padding: 10px;
border-radius: 5px;
background-color: #200707;
border: 1px solid @term-red;
font-weight: bold;
.error-dismiss {
padding: 2px;
cursor: pointer;
}
}
.settings-label {
font-weight: bold;
color: #fff;
width: 120px;
display: flex;
flex-direction: row;
align-items: center;
.info-message {
margin-left: 5px;
}
}
.settings-input {
display: flex;
flex-direction: row;
align-items: center;
&.inline-edit.edit-not-active {
cursor: pointer;
i.fa-pen {
margin-left: 5px;
}
&:hover {
text-decoration: underline;
text-decoration-style: dotted;
}
}
&.settings-clickable {
cursor: pointer;
}
&.inline-edit.edit-active {
input.input {
padding: 0;
height: 20px;
font-size: 12px;
}
.button {
height: 20px;
}
}
input {
padding: 4px;
border-radius: 3px;
}
.control {
font-size: 12px;
}
.tab-color-icon.color-green {
color: desaturate(@tab-green, 30%);
}
.tab-color-icon.color-orange {
color: desaturate(@tab-orange, 30%);
}
.tab-color-icon.color-red {
color: desaturate(@tab-red, 20%);
}
.tab-color-icon.color-yellow {
color: desaturate(@tab-yellow, 30%);
}
.tab-color-icon.color-blue {
color: desaturate(@tab-blue, 20%);
}
.tab-color-icon.color-magenta {
color: desaturate(@tab-magenta, 20%);
}
.tab-color-icon.color-cyan {
color: desaturate(@tab-cyan, 20%);
}
.tab-color-icon.color-white {
color: @term-white;
}
.tab-color-icon.color-black {
color: lighten(@tab-black, 20%);
}
.tab-colors {
display: flex;
flex-direction: row;
align-items: center;
.tab-color-sep {
padding-left: 10px;
padding-right: 10px;
font-weight: bold;
}
.tab-color-cur {
font-size: 12px;
width: 100px;
}
.tab-color-select {
cursor: pointer;
margin: 5px;
line-height: 1;
&:hover {
outline: 2px solid white;
}
}
}
.action-text {
margin-left: 20px;
font-size: 12px;
color: @term-red;
}
.settings-share-link {
width: 160px;
}
}
&:not(:first-child) {
margin-top: 10px;
}
}

File diff suppressed because it is too large Load Diff

284
src/sidebar.less Normal file
View File

@ -0,0 +1,284 @@
.main-sidebar .logo-header {
display: flex;
flex-direction: row;
justify-content: center;
border-bottom: 2px solid #ddd;
margin-left: -4px;
margin-right: -5px;
.title.prompt-logo-small {
padding-left: 5px;
padding-top: 8px;
padding-bottom: 8px;
margin-bottom: 0;
.mono-font(1.5rem);
background-color: darken(rgb(0, 177, 10), 30%);
color: rgb(0, 177, 10);
position: relative;
white-space: nowrap;
overflow: hidden;
flex-shrink: 0;
&.is-dev {
background-color: darken(rgb(177, 0, 10), 30%);
}
&.collapsed {
padding-left: 1px;
}
.title-cursor {
position: relative;
bottom: 3px;
left: 3px;
.mono-font(1.2rem);
}
}
}
.main-sidebar {
border-right: 1px solid #aaa;
padding: 0 5px 5px 5px;
width: 200px;
overflow-x: hidden;
display: flex;
flex-direction: column;
color: #ddd;
position: relative;
background-color: darken(rgb(0, 177, 10), 30%);
flex-shrink: 0;
&.is-dev {
background-color: darken(rgb(177, 0, 10), 30%);
}
.menu {
padding-top: 10px;
display: flex;
flex-direction: column;
height: 100%;
.spacer {
flex-grow: 1;
}
.bottom-spacer {
height: 10px;
}
a:hover {
color: white;
}
}
.menu-label {
color: #bbb;
a {
color: #bbb;
}
}
p.menu-label {
margin-bottom: 0px;
}
.menu-list {
li.new-session, li.add-remote {
a {
color: #666;
font-size: 13px;
}
.fa {
font-size: 10px;
}
}
li {
.mono-font();
}
li.menu-loading-message {
.mono-font();
}
li.menu-history, li.menu-bookmarks, li.menu-settings, li.menu-websharing {
margin-left: -10px;
}
li.menu-bookmarks {
margin-left: -10px;
}
li {
.hotkey {
visibility: hidden;
}
&:hover .hotkey {
visibility: visible;
}
}
}
.menu-list.session-menu-list {
li a {
display: flex;
flex-direction: row;
align-items: center;
.session-num {
width: 24px;
margin-left: -12px;
}
.session-gear {
visibility: hidden;
}
&:hover .session-gear {
color: #ccc;
visibility: visible;
&:hover {
color: white;
}
}
}
}
.menu-list.remotes-menu-list {
max-height: 35%;
overflow-y: auto;
}
.menu-list li.remote-menu-item {
a {
.mono-font(11px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.menu-list li a {
color: #bbb;
white-space: nowrap;
padding: 3px 5px 3px 12px;
vertical-align: middle;
position: relative;
font-size: 13px;
.user-status {
position: absolute !important;
top: 24px !important;
left: 32px !important;
}
.avatar {
width: 24px;
height: 24px;
margin-right: 5px;
vertical-align: middle;
}
.session-num {
color: #777;
font-size: 10px;
}
&.is-active .small-text {
color: white;
}
.small-text {
color: #777;
font-size: 10px;
}
&.is-active {
color: #ddd;
font-weight: bold;
background-color: @active-menu-color;
.session-num {
color: #aaa;
font-weight: normal;
}
}
.sub-label {
font-size: 12px;
font-style: italic;
}
&.activity {
font-weight: bold;
color: #ddd;
.tag {
margin-left: 4px;
padding: 0 5px 0 5px;
position: relative;
top: -1px;
}
}
&.is-active:hover {
background-color: #3273dc;
}
&:hover {
background-color: #444;
color: #ddd;
}
.status {
font-size: 8px;
margin-right: 5px;
position: relative;
top: -3px;
color: #4e9a06;
&.offline {
color: #cc0000;
}
}
}
&.collapsed {
width: 55px;
.collapse-container {
right: 17px;
}
.menu {
display: none;
}
}
.collapse-container {
position: absolute;
right: 3px;
top: 42px;
.arrow-container {
color: #777;
padding: 5px;
cursor: pointer;
&:hover {
color: #ddd;
}
}
}
}
.menu-list .remote-status.status-connecting {
position: relative;
top: 0px;
font-size: 12px;
margin-left: -3px;
}

269
src/tabs.less Normal file
View File

@ -0,0 +1,269 @@
#main .screen-tabs .screen-tab {
&.color-green {
color: @tab-white-text;
background-color: desaturate(@tab-green, 50%);
&:hover {
background-color: @tab-green;
}
&.is-active {
color: white;
background-color: @tab-green;
}
}
&.color-orange {
color: @tab-black-text;
background-color: desaturate(@tab-orange, 30%);
&:hover {
background-color: @tab-orange;
}
&.is-active {
color: black;
background-color: @tab-orange;
}
}
&.color-red {
color: @tab-white-text;
background-color: desaturate(@tab-red, 40%);
&:hover {
background-color: @tab-red;
}
&.is-active {
color: white;
background-color: @tab-red;
}
}
&.color-yellow {
color: @tab-black-text;
background-color: desaturate(@tab-yellow, 40%);
&:hover {
background-color: @tab-yellow;
}
&.is-active {
background-color: @tab-yellow;
color: black;
box-shadow:
0 3px 0 #fff inset,
0 4px 0 #000 inset;
}
}
&.color-blue {
color: @tab-white-text;
background-color: desaturate(@tab-blue, 50%);
&:hover {
background-color: @tab-blue;
}
&.is-active {
color: white;
background-color: @tab-blue;
}
}
&.color-magenta {
color: @tab-white-text;
background-color: desaturate(@tab-magenta, 20%);
&:hover {
background-color: @tab-magenta;
}
&.is-active {
color: white;
background-color: @tab-magenta;
}
}
&.color-cyan {
color: @tab-black-text;
background-color: desaturate(@tab-cyan, 20%);
&:hover {
background-color: @tab-cyan;
}
&.is-active {
color: black;
background-color: @tab-cyan;
}
}
&.color-white {
color: @tab-black-text;
background-color: @term-white;
&:hover {
background-color: @tab-white;
}
&.is-active {
color: black;
background-color: @tab-white;
box-shadow:
0 3px 0 #fff inset,
0 4px 0 #000 inset;
}
}
&.color-black {
color: @tab-white-text;
background-color: lighten(@tab-black, 20%);
&:hover {
background-color: @tab-black;
}
&.is-active {
color: white;
background-color: @tab-black;
}
}
.web-share-icon {
position: relative;
top: 1px;
margin-right: 3px;
}
}
.screen-tabs-container {
position: relative;
&:hover {
z-index: 200;
}
&:hover .cmd-hints {
display: flex;
}
.cmd-hints {
position: absolute;
bottom: -18px;
left: 0px;
display: flex;
}
}
.screen-tabs {
height: 30px;
display: flex;
flex-direction: row;
border-top: 1px solid #666;
border-right: 1px solid #eee;
overflow-x: overlay;
overflow-y: visible;
align-items: center;
&::-webkit-scrollbar {
display: none;
z-index: 5;
background-color: #fff;
height: 4px;
width: 0;
}
&::-webkit-scrollbar-thumb {
background: #777;
}
&.scrolling::-webkit-scrollbar {
display: block;
}
.screen-tab {
height: 30px;
min-width: 80px;
width: 150px;
line-height: 1.0;
flex-shrink: 1;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-weight: 500;
padding-left: 0;
padding-right: 0;
cursor: pointer;
position: relative;
border-right: 1px solid #777;
.tab-name {
flex-grow: 1;
flex-basis: 50px;
padding-left: 2px;
padding-right: 2px;
text-align: center;
}
&.is-active {
box-shadow: 0 3px 0 #fff inset;
border-top: none;
opacity: 1.0;
}
&.is-archived {
.fa.fa-archive {
margin-right: 4px;
}
}
.tab-index {
font-size: 11px;
position: absolute;
right: 2px;
top: 4px;
bottom: 0;
font-weight: normal;
display: none;
padding-left: 4px;
padding-top: 6px;
background-color: inherit;
}
.tab-gear {
position: absolute;
right: 5px;
top: 4px;
bottom: 0;
font-weight: normal;
display: none;
padding-left: 5px;
padding-top: 5px;
background-color: inherit;
}
&:hover {
.tab-gear {
display: block;
&:hover {
display: block;
top: 4px;
padding-top: 4px;
right: 3px;
padding-left: 4px;
i {
font-size: 15px;
}
}
}
}
}
&:hover .screen-tab .tab-index {
display: block;
}
&:hover .screen-tab:hover .tab-index {
display: none;
}
.screen-tab.new-screen {
width: 30px;
min-width: 30px;
background-color: black;
border-right: none;
color: #ccc;
cursor: pointer;
&:hover {
background-color: #666;
border-right: 1px solid #ccc;
}
}
}

91
src/utils.less Normal file
View File

@ -0,0 +1,91 @@
.mono-font(@size: inherit, @weight: inherit) {
font-family: 'JetBrains Mono', monospace;
font-size: @size;
font-weight: @weight;
}
.monofont-thin {
.mono-font(inherit, 200);
}
.monofont-normal {
.mono-font(inherit, 400);
}
.monofont-bold {
.mono-font(inherit, 700);
}
.display-none {
display: none;
}
.bold {
font-weight: bold;
}
.term-black {
color: @term-black;
}
.term-red {
color: @term-red;
}
.term-green {
color: @term-green;
}
.term-yellow {
color: @term-yellow;
}
.term-blue {
color: @term-blue;
}
.term-magenta {
color: @term-magenta;
}
.term-cyan {
color: @term-cyan;
}
.term-white {
color: @term-white;
}
.term-bright-white {
color: @term-bright-white;
}
.term-bright-green {
color: @term-bright-green;
}
.term-bright-red {
color: @term-bright-red;
}
.flex-spacer {
flex-grow: 1;
}
.flex-centered-row {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.flex-centered-col {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
a.a-block {
display: block;
}

556
src/views.less Normal file
View File

@ -0,0 +1,556 @@
.alt-view {
background-color: #111;
overflow-y: auto;
flex-grow: 1;
.alt-title {
margin: 20px 10px 0px 5px;
padding-left: 10px;
padding-bottom: 12px;
.mono-font(1.5rem);
color: @term-bright-white;
border-bottom: 1px solid white;
}
.alt-list {
color: white;
margin: 4px 10px 5px 5px;
border-bottom: 1px solid white;
}
.no-content {
color: @term-white;
padding: 30px 10px 35px 10px;
border-bottom: 1px solid white;
}
.close-button {
position: absolute;
padding: 4px;
font-size: 24px;
color: #aaa;
right: 15px;
top: 18px;
cursor: pointer;
&:hover {
color: #fff;
}
}
.alt-help {
color: @term-white;
margin-top: 20px;
display: flex;
flex-direction: row;
align-items: center;
font-size: 12px;
margin-bottom: 10px;
.help-entry {
margin-left: 20px;
}
}
}
.history-view {
color: #ccc;
.close-div {
padding-top: 10px;
font-size: 24px;
i {
padding: 5px 5px 5px 10px;
cursor: pointer;
}
i:hover {
color: #fff;
}
}
.header {
display: flex;
flex-direction: row;
margin: 10px;
align-items: flex-start;
.history-title {
margin-top: 5px;
.mono-font(1.5rem);
font-weight: bold;
color: white;
}
input {
background-color: #333;
color: white;
i {
color: white;
}
}
}
.history-search {
flex-grow: 1;
margin-top: 5px;
margin-left: 15px;
.main-search {
.field {
width: 80%;
}
input::placeholder {
color: #777;
}
}
.advanced-search {
display: flex;
flex-direction: row;
align-items: center;
.session-dropdown, .remote-dropdown {
.dropdown-item {
color: white;
cursor: pointer;
&:hover {
background-color: #666;
}
}
.dropdown-content {
border: 1px solid #333;
border-radius: 3px;
}
}
.remote-dropdown {
margin-left: 15px;
}
.search-checkbox {
margin-left: 15px;
border: 1px solid #777;
padding: 5px 10px 5px 10px;
font-size: 12px;
display: flex;
flex-direction: row;
align-items: center;
&.is-active {
background-color: #666;
}
.checkbox-container {
position: relative;
top: 2px;
}
.checkbox-text {
padding-left: 8px;
cursor: pointer;
}
}
.fromts {
font-size: 12px;
display: flex;
flex-direction: row;
align-items: center;
margin-left: 15px;
.fromts-text {
}
}
.reset-button {
cursor: pointer;
margin-left: 15px;
font-size: 12px;
border: 1px solid #777;
padding: 5px 10px 5px 10px;
&:hover {
background-color: #666;
}
}
}
}
.control-bar {
display: flex;
flex-direction: row;
margin-bottom: 5px;
margin-right: 10px;
margin-top: 10px;
margin-left: 10px;
align-items: center;
.is-hidden {
display: none;
}
&.is-top {
border-top: 1px solid #333;
padding-top: 4px;
}
.control-checkbox {
cursor: pointer;
color: #777;
font-size: 18px;
width: 24px;
margin-left: 14px;
&:hover {
color: white;
}
}
.control-button {
cursor: pointer;
color: #aaa;
margin-left: 10px;
font-size: 14px;
&.is-disabled {
cursor: default;
i, span {
display: none;
}
}
&:hover {
color: white;
}
&.delete-button.is-active {
color: @term-bright-red !important;
}
}
.spacer {
flex-grow: 1;
}
.showing-text {
font-size: 16px;
margin-right: 10px;
}
.showing-btn {
padding: 0 5px 0 5px;
cursor: pointer;
font-size: 16px;
font-weight: bold;
&.is-disabled {
cursor: default;
color: #777;
font-weight: normal;
}
}
.btn-spacer {
width: 10px;
}
}
.no-items {
display: flex;
flex-direction: row;
justify-content: center;
.mono-font(14px);
padding: 30px 0 30px 0;
border: 1px solid white;
border-radius: 3px;
margin: 20px 50px 20px 20px;
}
.history-table {
margin: 0px 10px 10px 10px;
table-layout: fixed;
border-top: 2px solid #ccc;
tr.active-history-item {
td {
padding-right: 10px;
.line-container {
padding: 0px 10px 10px 10px;
overflow-x: auto;
background-color: black;
}
.line-context {
.mono-font(12px);
margin-left: 20px;
margin-bottom: 10px;
margin-top: 10px;
display: flex;
flex-direction: row;
.vic-btn {
cursor: pointer;
color: #ccc;
&:hover {
color: white;
}
}
}
.no-line-context {
height: 10px;
}
.line-container.no-line {
.mono-font(12px);
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 20px;
}
}
}
tr.history-item {
padding: 0 10px 0 10px;
display: flex;
border-top: 1px solid #333;
align-items: center;
&.is-selected {
background-color: #003;
}
&.is-selected:hover {
background-color: #336;
}
&:hover {
background-color: #333;
td.bookmark i {
display: block;
}
}
td {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 5px;
}
td.selectbox {
flex: 0 0 auto;
flex-basis: 24px;
font-size: 14px;
cursor: pointer;
}
td.bookmark {
flex: 0 0 auto;
flex-basis: 20px;
font-size: 14px;
cursor: pointer;
i {
position: relative;
top: 1px;
display: none;
}
}
td.ts {
font-size: 12px;
flex: 0 0 auto;
flex-basis: 65px;
font-weight: bold;
}
td.session {
font-size: 12px;
flex: 0 0 auto;
flex-basis: 120px;
text-overflow: ellipsis;
}
td.remote {
.mono-font(12px);
flex: 0 0 auto;
flex-basis: 150px;
text-overflow: ellipsis;
padding-right: 5px;
max-width: 150px;
overflow: hidden;
}
td.cmdstr {
.mono-font(12px);
color: white;
flex: 1 0 0;
padding-left: 20px;
border-radius: 3px;
white-space: pre;
max-height: 70px;
cursor: pointer;
min-width: 300px;
padding-top: 4px;
padding-bottom: 4px;
overflow: hidden;
.use-button {
visibility: hidden;
}
&:hover .use-button {
visibility: visible;
}
}
}
}
}
.webshare-view {
.webshare-item {
padding: 4px 5px 8px 15px;
margin-bottom: 4px;
border-top: 1px solid white;
display: flex;
flex-direction: row;
position: relative;
min-height: 55px;
align-items: center;
&:first-child {
border-top: 0;
}
.webshare-vic {
width: 200px;
.webshare-vic-link {
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
}
.actions {
display: flex;
flex-direction: row;
gap: 10px;
}
&:hover {
background-color: #222;
}
}
}
.bookmarks-view {
.bookmarks-list {
color: white;
margin: 4px 10px 5px 5px;
.no-bookmarks {
color: @term-white;
padding: 30px 10px 35px 10px;
border-bottom: 1px solid white;
}
}
.bookmark {
border-bottom: 1px solid #777;
padding: 4px 5px 8px 15px;
margin-bottom: 4px;
position: relative;
display: flex;
flex-direction: row;
max-width: 100%;
.focus-indicator {
top: 0;
height: calc(100% - 4px);
}
&.is-editing {
padding-top: 8px;
padding-bottom: 12px;
}
&.pending-delete {
background-color: #522;
}
.bookmark-content, .bookmark-edit {
flex-grow: 1;
max-width: calc(100% - 50px);
}
label {
color: white;
margin-bottom: 4px;
}
textarea {
width: 80%;
min-width: 50%;
color: white;
background-color: black;
&.mono-font {
.mono-font(12px);
}
}
.bookmark-id-div {
display: none;
position: absolute;
color: #666;
right: 5px;
bottom: 2px;
.mono-font(8px);
}
&:hover .bookmark-id-div {
display: block;
}
.bookmark-controls {
display: flex;
flex-direction: row;
font-size: 16px;
visibility: hidden;
color: @term-white;
.bookmark-control:first-child {
margin-left: 0;
}
.bookmark-control {
margin-left: 10px;
cursor: pointer;
padding: 2px;
&:hover {
color: @term-bright-white;
}
}
}
&:hover .bookmark-controls {
visibility: visible;
}
}
}

126
src/webshare.less Normal file
View File

@ -0,0 +1,126 @@
body.prompt-webshare #main {
display: flex;
flex-direction: column;
.logo-header {
display: flex;
flex-direction: row;
padding: 10px;
border-bottom: 1px solid #777;
align-items: center;
flex-shrink: 0;
.logo-text {
.mono-font(32px);
a {
color: @prompt-green;
}
}
.screen-name {
color: white;
.mono-font(24px);
margin-left: 20px;
}
.download-button {
margin-right: 20px;
}
}
.webshare-controls {
display: flex;
flex-direction: row;
flex-shrink: 0;
height: 40px;
align-items: center;
padding-left: 20px;
padding-right: 20px;
background-color: darken(@prompt-green, 30%);
color: white;
.screen-sharename {
font-weight: bold;
}
.sync-control {
display: flex;
flex-direction: row;
color: @term-white;
font-size: 13px;
align-items: center;
div:first-child {
margin-right: 5px;
}
}
}
.prompt-content {
flex-grow: 1;
padding: 10px 0;
display: flex;
flex-direction: row;
overflow: hidden;
.web-screen-view {
height: 100%;
width: 100%;
flex-grow: 1;
display: flex;
flex-direction: column;
.lines {
height: 100%;
flex-grow: 1;
padding-top: 0;
}
}
}
.prompt-footer {
display: flex;
flex-direction: row;
align-items: center;
color: #aaa;
border-top: 1px solid #777;
height: 50px;
padding-left: 20px;
padding-right: 20px;
flex-shrink: 0;
.footer-copy {
font-size: 12px;
}
a {
display: block;
}
}
color: white;
#app {
color: white;
}
.lines .line-sep {
margin-left: 0px;
margin-right: 10px;
}
.lines .line.line-cmd {
.line-icon.copy-icon {
color: @term-white;
font-size: 18px;
&:hover {
color: @term-bright-white;
}
}
.copied-indicator {
z-index: 10;
}
}
}