More Font / UI Updates and Cleanup (#360)

* font updates, settings modals, tabs, change base font.

* aichat responses

* fix updatemodel errors/warnings.  more font inconsistencies

* history fixes

* more fixups, fix some warnings, text/font updates for various subsystems
This commit is contained in:
Mike Sawka
2024-02-29 21:40:01 -08:00
committed by GitHub
parent 5af7d21e4b
commit 41f91b6a8a
23 changed files with 237 additions and 137 deletions
+106 -46
View File
@@ -7,10 +7,10 @@
html,
body {
overflow: hidden;
font-family: var(--fixed-font);
font-size: 12px;
font-weight: 300;
line-height: 1.5;
font-family: var(--base-font-family);
font-size: var(--base-font-size);
font-weight: var(--base-font-weight);
line-height: normal;
background-color: black;
color: var(--app-text-color);
}
@@ -25,13 +25,33 @@ body .sidebar {
background-color: var(--app-panel-bg-color);
}
textarea {
body textarea,
body textarea.textarea {
overflow: hidden;
font-family: var(--fixed-font);
font-size: 12px;
font-weight: 300;
font-family: var(--base-font-family);
font-size: var(--base-font-size);
font-weight: var(--base-font-weight);
line-height: 1.5;
color: var(--app-text-color);
background-color: var(--input-bg-color);
&::placeholder {
color: var(--input-placeholder-color);
}
}
body input,
body input.input {
font-family: var(--base-font-family);
font-size: var(--base-font-size);
font-weight: var(--base-font-weight);
line-height: 1.5;
color: var(--app-text-color);
background-color: var(--input-bg-color);
&::placeholder {
color: var(--input-placeholder-color);
}
}
// typography
@@ -86,6 +106,10 @@ textarea {
height: 16px;
}
.bold {
font-weight: bold;
}
body a {
color: var(--app-accent-color);
cursor: pointer;
@@ -510,6 +534,75 @@ a.a-block {
}
}
.tab-color-cur,
.tab-icon-cur {
display: flex;
flex-direction: row;
}
.tabicon {
&.color-default,
&.color-green {
i {
color: var(--tab-green);
}
}
&.color-red {
i {
color: var(--tab-red);
}
}
&.color-orange {
i {
color: var(--tab-orange);
}
}
&.color-blue {
i {
color: var(--tab-blue);
}
}
&.color-yellow {
i {
color: var(--tab-yellow);
}
}
&.color-pink {
i {
color: var(--tab-pink);
}
}
&.color-mint {
i {
color: var(--tab-mint);
}
}
&.color-cyan {
i {
color: var(--tab-cyan);
}
}
&.color-violet {
i {
color: var(--tab-violet);
}
}
&.color-white {
i {
color: var(--tab-white);
}
}
}
.icon.color-default,
.icon.color-green {
path,
@@ -670,6 +763,10 @@ a.a-block {
}
}
.settings-field + .settings-field {
margin-top: 6px;
}
.settings-field {
display: flex;
flex-direction: row;
@@ -678,7 +775,6 @@ a.a-block {
&.settings-field.sub-field {
.settings-label {
font-weight: normal;
text-align: right;
padding-right: 20px;
}
@@ -738,46 +834,10 @@ a.a-block {
.control {
.icon {
width: 1.5em;
height: 1.5em;
margin: 0;
}
}
.tab-color-icon.color-default path {
fill: var(--tab-green);
}
.tab-color-icon.color-green path {
fill: var(--tab-green);
}
.tab-color-icon.color-orange path {
fill: var(--tab-orange);
}
.tab-color-icon.color-red path {
fill: var(--tab-red);
}
.tab-color-icon.color-yellow path {
fill: var(--tab-yellow);
}
.tab-color-icon.color-blue path {
fill: var(--tab-blue);
}
.tab-color-icon.color-mint path {
fill: var(--tab-mint);
}
.tab-color-icon.color-cyan path {
fill: var(--tab-cyan);
}
.tab-color-icon.color-white path {
fill: var(--tab-white);
}
.tab-color-icon.color-violet path {
fill: var(--tab-violet);
}
.tab-color-icon.color-pink path {
fill: var(--tab-pink);
}
.tab-colors,
.tab-icons {
display: flex;
@@ -801,7 +861,7 @@ a.a-block {
.tab-icon-name {
display: inline-block;
margin-left: 1em;
min-width: 80px;
min-width: 70px;
}
.tab-color-select,
+1
View File
@@ -12,6 +12,7 @@
gap: 4px;
border-radius: 6px;
height: auto;
line-height: 1.5;
&.primary {
background: none;
+2 -1
View File
@@ -50,8 +50,9 @@
white-space: pre;
padding: 2px 8px 2px 8px;
background-color: var(--cmdstrcode-bg-color);
font-size: 1em;
font-size: var(--termfontsize);
font-family: var(--termfontfamily);
line-height: var(--termlineheight);
}
}
+2 -2
View File
@@ -24,7 +24,7 @@
margin: 0;
.title {
font-size: 1.5em;
font-size: var(--title-font-size);
padding: 0 10px;
vertical-align: middle;
line-height: var(--screentabs-height);
@@ -34,7 +34,7 @@
.close-div {
-webkit-app-region: no-drag;
font-size: 1.5em;
font-size: var(--title-font-size);
}
}
+1 -1
View File
@@ -48,7 +48,7 @@
.wave-modal-title {
color: #eceeec;
font-size: 15px;
font-size: var(--title-font-size);
}
button {
+1 -1
View File
@@ -18,7 +18,7 @@ class TabIcon extends React.Component<{ icon: string; color: string }> {
color = "green";
}
return (
<div className={cn("icon", "color-" + color)}>
<div className={cn("tabicon", "color-" + color)}>
<i className={iconClass} />
</div>
);
+1 -1
View File
@@ -123,7 +123,7 @@ class LineSettingsModal extends React.Component<{}, {}> {
return (
<Modal className="line-settings-modal">
<Modal.Header onClose={this.closeModal} title={`line settings (${line.linenum})`} />
<Modal.Header onClose={this.closeModal} title={`Block Settings (#${line.linenum})`} />
<div className="wave-modal-body">
<div className="settings-field">
<div className="settings-label">Renderer</div>
@@ -34,6 +34,10 @@
top: 8px;
}
}
.wave-dropdown-display {
bottom: 7px;
}
}
.archived-label,
+8 -10
View File
@@ -61,10 +61,9 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
.filter((r) => !r.archived)
.map((remote) => ({
...remote,
label:
remote.remotealias && !util.isBlank(remote.remotealias)
? `${remote.remotecanonicalname}`
: remote.remotecanonicalname,
label: !util.isBlank(remote.remotealias)
? `${remote.remotealias} - ${remote.remotecanonicalname}`
: remote.remotecanonicalname,
value: remote.remotecanonicalname,
}))
.sort((a, b) => {
@@ -228,7 +227,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
return (
<Modal className="screen-settings-modal">
<Modal.Header onClose={this.closeModal} title={`tab settings (${screen.name.get()})`} />
<Modal.Header onClose={this.closeModal} title={`Tab Settings (${screen.name.get()})`} />
<div className="wave-modal-body">
<div className="settings-field">
<div className="settings-label">Tab Id</div>
@@ -252,7 +251,6 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<div className="settings-input">
<Dropdown
className="screen-settings-dropdown"
label={curRemote.remotealias}
options={this.getOptions()}
defaultValue={curRemote.remotecanonicalname}
onChange={this.selectRemote}
@@ -275,7 +273,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<div className="tab-colors">
<div className="tab-color-cur">
<TabIcon icon={screen.getTabIcon()} color={screen.getTabColor()} />
<span className="tab-color-name">{screen.getTabColor()}</span>
<div className="tab-color-name">{screen.getTabColor()}</div>
</div>
<div className="tab-color-sep">|</div>
<For each="color" of={appconst.TabColors}>
@@ -296,7 +294,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<div className="tab-icons">
<div className="tab-icon-cur">
<TabIcon icon={screen.getTabIcon()} color="white" />
<span className="tab-icon-name">{screen.getTabIcon()}</span>
<div className="tab-icon-name">{screen.getTabIcon()}</div>
</div>
<div className="tab-icon-sep">|</div>
<For each="icon" index="index" of={appconst.TabIcons}>
@@ -315,7 +313,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<div className="settings-label archived-label">
<div className="">Archived</div>
<Tooltip
message={`Archive will hide the tab. Commands and output will be retained in history.`}
message={`Archive will hide the tab. Commands and output will be retained, but hidden.`}
icon={<i className="fa-sharp fa-regular fa-circle-question" />}
className="screen-settings-tooltip"
>
@@ -330,7 +328,7 @@ class ScreenSettingsModal extends React.Component<{}, {}> {
<div className="settings-label actions-label">
<div>Actions</div>
<Tooltip
message={`Delete will remove the tab, removing all commands and output from history.`}
message={`Delete will remove the tab, removing all commands and output.`}
icon={<i className="fa-sharp fa-regular fa-circle-question" />}
className="screen-settings-tooltip"
>
+3 -3
View File
@@ -90,7 +90,7 @@ class SessionSettingsModal extends React.Component<{}, {}> {
}
return (
<Modal className="session-settings-modal">
<Modal.Header onClose={this.closeModal} title={`workspace settings (${this.session.name.get()})`} />
<Modal.Header onClose={this.closeModal} title={`Workspace Settings (${this.session.name.get()})`} />
<div className="wave-modal-body">
<div className="settings-field">
<div className="settings-label">Name</div>
@@ -111,7 +111,7 @@ class SessionSettingsModal extends React.Component<{}, {}> {
<Tooltip
className="session-settings-tooltip"
message="Archive will hide the workspace from the active menu. Commands and output will be
retained in history."
retained, but hidden."
icon={<i className="fa-sharp fa-regular fa-circle-question" />}
>
{<i className="fa-sharp fa-regular fa-circle-question" />}
@@ -126,7 +126,7 @@ class SessionSettingsModal extends React.Component<{}, {}> {
<div>Actions</div>
<Tooltip
className="session-settings-tooltip"
message="Delete will remove the workspace, removing all commands and output from history."
message="Delete will remove the workspace, deleting all commands and output."
icon={<i className="fa-sharp fa-regular fa-circle-question" />}
>
{<i className="fa-sharp fa-regular fa-circle-question" />}
@@ -45,7 +45,6 @@
.wave-button {
padding: 4px 15px;
font-size: 11px;
margin-right: 8px;
}
}
@@ -75,10 +74,6 @@
}
}
.settings-field:not(:first-child) {
margin-top: 4px;
}
.status {
display: flex;
height: 30px;
+2 -2
View File
@@ -2,8 +2,8 @@
padding-bottom: 10px;
.icon {
width: 2em !important;
height: 1.3em !important;
width: 1.5em !important;
height: 1em !important;
padding-left: 5px;
fill: var(--app-text-color);
}
-1
View File
@@ -16,7 +16,6 @@ import { Line } from "@/app/line/linecomps";
import { checkKeyPressed, adaptFromReactOrNativeKeyEvent } from "@/util/keyutil";
import { TextField } from "@/elements";
import { ReactComponent as XmarkIcon } from "@/assets/icons/line/xmark.svg";
import { ReactComponent as AngleDownIcon } from "@/assets/icons/history/angle-down.svg";
import { ReactComponent as ChevronLeftIcon } from "@/assets/icons/history/chevron-left.svg";
import { ReactComponent as ChevronRightIcon } from "@/assets/icons/history/chevron-right.svg";
+28 -14
View File
@@ -126,21 +126,21 @@ class LineActions extends React.Component<{ screen: LineContainerType; line: Lin
const containerType = screen.getContainerType();
return (
<div className="line-actions">
<div key="restart" title="Restart Command" className="line-icon" onClick={this.clickRestart}>
<i className="fa-sharp fa-regular fa-arrows-rotate fa-fw" />
</div>
<div key="delete" title="Delete Line (&#x2318;D)" className="line-icon" onClick={this.clickDelete}>
<i className="fa-sharp fa-regular fa-trash fa-fw" />
</div>
<div
key="bookmark"
title="Bookmark"
className={cn("line-icon", "line-bookmark")}
onClick={this.clickBookmark}
>
<i className="fa-sharp fa-regular fa-bookmark fa-fw" />
</div>
<If condition={containerType == appconst.LineContainer_Main}>
<div key="restart" title="Restart Command" className="line-icon" onClick={this.clickRestart}>
<i className="fa-sharp fa-regular fa-arrows-rotate fa-fw" />
</div>
<div key="delete" title="Delete Line (&#x2318;D)" className="line-icon" onClick={this.clickDelete}>
<i className="fa-sharp fa-regular fa-trash fa-fw" />
</div>
<div
key="bookmark"
title="Bookmark"
className={cn("line-icon", "line-bookmark")}
onClick={this.clickBookmark}
>
<i className="fa-sharp fa-regular fa-bookmark fa-fw" />
</div>
<div
key="minimize"
title={`${isMinimized ? "Show Output" : "Hide Output"}`}
@@ -167,6 +167,20 @@ class LineActions extends React.Component<{ screen: LineContainerType; line: Lin
</div>
</If>
<If condition={containerType == appconst.LineContainer_Sidebar}>
<div key="restart" title="Restart Command" className="line-icon" onClick={this.clickRestart}>
<i className="fa-sharp fa-regular fa-arrows-rotate fa-fw" />
</div>
<div key="delete" title="Delete Line (&#x2318;D)" className="line-icon" onClick={this.clickDelete}>
<i className="fa-sharp fa-regular fa-trash fa-fw" />
</div>
<div
key="bookmark"
title="Bookmark"
className={cn("line-icon", "line-bookmark")}
onClick={this.clickBookmark}
>
<i className="fa-sharp fa-regular fa-bookmark fa-fw" />
</div>
<div
className="line-icon line-sidebar"
onClick={this.clickRemoveFromSidebar}
-10
View File
@@ -3,14 +3,4 @@
:root {
// can put dev overrides for testing here
--label-font-family: "Lato", sans-serif;
--sidebar-font-size: 15px;
--sidebar-font-weight: normal;
--sidebar-highlight-font-weight: bold;
--screentabs-font-size: 15px;
--screentabs-font-weight: normal;
--screentabs-selected-font-weight: bold;
}
+14 -7
View File
@@ -13,20 +13,27 @@
--termlineheight-sm: 13px;
// other fonts
--base-font-family: "Lato", sans-serif;
--base-font-size: 15px;
--base-font-weight: normal;
--title-font-size: 18px;
--input-bg-color: #171717;
--input-placeholder-color: #777;
--fixed-font: "Martian Mono", sans-serif;
--terminal-font: "JetBrains Mono", sans-serif;
--text-s1-font: "Martian Mono", sans-serif;
--markdown-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif,
"Apple Color Emoji", "Segoe UI Emoji";
--label-font-family: "Martian Mono", sans-serif;
--markdown-font-size: 14px;
--screentabs-height: 38px; // magic
--screentabs-line-height: 21px; // magic
--screentabs-font-size: 12.5px;
--screentabs-font-weight: 300;
--screentabs-selected-font-weight: 300;
--screentabs-font-size: 15px;
--screentabs-font-weight: normal;
--screentabs-selected-font-weight: bold;
--screen-tab-width: 11.4em;
// floating logo settings
@@ -158,10 +165,10 @@
--sidebar-settings-color: rgb(255, 255, 255);
--sidebar-separator-color: var(--app-border-color);
--sidebar-highlight-color: rgba(241, 246, 243, 0.08);
--sidebar-font-size: 12.5px;
--sidebar-font-size: 15px;
--sidebar-line-height: 1.5;
--sidebar-font-weight: 300;
--sidebar-highlight-font-weight: 300;
--sidebar-font-weight: normal;
--sidebar-highlight-font-weight: bold;
// line colors
--line-sidebar-message-color: rgb(196, 160, 0);
+3 -2
View File
@@ -12,7 +12,7 @@
border-left: 1px solid var(--app-border-color);
border-bottom: 1px solid var(--app-border-color);
font-size: var(--sidebar-font-size);
font-family: var(--label-font-family);
font-family: var(--base-font-family);
font-weight: var(--sidebar-font-weight);
.title-bar-drag {
@@ -24,7 +24,8 @@
align-items: center;
.logo {
margin-left: 45px;
margin-left: auto;
margin-right: auto;
margin-top: 4px;
svg {
width: 88px;
+6 -9
View File
@@ -138,9 +138,9 @@ class AIChat extends React.Component<{}, {}> {
let msgClassName = "chat-msg " + senderClassName;
let innerHTML: React.JSX.Element = (
<span>
<div style={{ display: "flex", marginBottom: 2 }}>
<i className="fa-sharp fa-solid fa-user" style={{ marginRight: "7px", marginTop: "2px" }}></i>
<div style={{ marginRight: "5px" }}>You</div>
<div className="chat-msg-header">
<i className="fa-sharp fa-solid fa-user"></i>
<div className="chat-username">You</div>
</div>
<p className="msg-text">{chatItem.userquery}</p>
</span>
@@ -151,12 +151,9 @@ class AIChat extends React.Component<{}, {}> {
} else {
innerHTML = (
<span>
<div style={{ display: "flex", marginBottom: 2 }}>
<i
className="fa-sharp fa-solid fa-headset"
style={{ marginRight: "7px", marginTop: "3px" }}
></i>
<div style={{ marginRight: "5px" }}>ChatGPT</div>
<div className="chat-msg-header">
<i className="fa-sharp fa-solid fa-headset"></i>
<div className="chat-username">ChatGPT</div>
</div>
<Markdown text={chatItem.assistantresponse.message} codeSelect />
</span>
+25 -4
View File
@@ -7,7 +7,7 @@
width: 100%;
padding: calc(var(--termpad) * 2) calc(var(--termpad) * 2) calc(var(--termpad) * 2) calc(var(--termpad) * 3 - 1px);
z-index: 100;
border-top: 1px solid var(--app-border-color);
border-top: 2px solid var(--app-border-color);
background-color: var(--app-bg-color);
&.active {
@@ -71,6 +71,9 @@
display: flex;
justify-content: space-between;
align-items: center;
font-family: var(--termfontfamily);
font-size: var(--termfontsize);
line-height: var(--termlineheight);
}
.cmd-input-filter {
@@ -250,8 +253,22 @@
}
.chat-msg {
margin-top: 5px;
margin-bottom: 5px;
margin-top: calc(var(--termpad) * 2);
margin-bottom: calc(var(--termpad) * 2);
.chat-msg-header {
display: flex;
margin-bottom: 2px;
i {
margin-right: 0.5em;
}
.chat-username {
font-weight: bold;
margin-right: 5px;
}
}
}
.chat-msg-assistant {
@@ -363,12 +380,16 @@
flex-shrink: 1;
overflow-y: auto;
margin-bottom: var(--termpad);
font-family: var(--termfontfamily);
font-size: var(--termfontsize);
line-height: var(--termlineheight);
.info-title {
position: absolute;
z-index: 102;
top: 5px;
left: 0;
font-size: calc(var(--termfontsize) + 2px);
background-color: var(--app-bg-color);
color: var(--cmdinput-title-color);
padding-bottom: 4px;
@@ -384,7 +405,7 @@
.info-title + .info-lines,
.info-title + .info-comps,
.info-title + .info-error {
margin-top: 24px;
margin-top: 26px;
}
.info-msg {
+4
View File
@@ -230,6 +230,10 @@
top: 8px;
}
}
.wave-dropdown-display {
bottom: 7px;
}
}
&.conn-section {

Some files were not shown because too many files have changed in this diff Show More