mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Renaming opacity to text-opacity in code
This commit is contained in:
@@ -4,18 +4,18 @@
|
|||||||
|
|
||||||
* {
|
* {
|
||||||
transition: color 300ms linear, background 300ms linear;
|
transition: color 300ms linear, background 300ms linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
*:hover {
|
*:hover {
|
||||||
/* tint: 30% red;
|
/* tint: 30% red;
|
||||||
/* outline: heavy red; */
|
/* outline: heavy red; */
|
||||||
}
|
}
|
||||||
|
|
||||||
App > Screen {
|
App > Screen {
|
||||||
|
|
||||||
background: $surface;
|
background: $surface;
|
||||||
color: $text-surface;
|
color: $text-surface;
|
||||||
layers: base sidebar;
|
layers: base sidebar;
|
||||||
|
|
||||||
color: $text-background;
|
color: $text-background;
|
||||||
@@ -23,12 +23,12 @@ App > Screen {
|
|||||||
layout: vertical;
|
layout: vertical;
|
||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#tree-container {
|
#tree-container {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
height: 20;
|
height: 20;
|
||||||
margin: 1 3;
|
margin: 1 3;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
padding: 1 2;
|
padding: 1 2;
|
||||||
@@ -37,7 +37,7 @@ App > Screen {
|
|||||||
DirectoryTree {
|
DirectoryTree {
|
||||||
padding: 0 1;
|
padding: 0 1;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -46,10 +46,10 @@ DirectoryTree {
|
|||||||
DataTable {
|
DataTable {
|
||||||
/*border:heavy red;*/
|
/*border:heavy red;*/
|
||||||
/* tint: 10% green; */
|
/* tint: 10% green; */
|
||||||
/* opacity: 50%; */
|
/* text-opacity: 50%; */
|
||||||
padding: 1;
|
padding: 1;
|
||||||
margin: 1 2;
|
margin: 1 2;
|
||||||
height: 24;
|
height: 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar {
|
#sidebar {
|
||||||
@@ -59,7 +59,7 @@ DataTable {
|
|||||||
width: 30;
|
width: 30;
|
||||||
margin-bottom: 1;
|
margin-bottom: 1;
|
||||||
offset-x: -100%;
|
offset-x: -100%;
|
||||||
|
|
||||||
transition: offset 500ms in_out_cubic;
|
transition: offset 500ms in_out_cubic;
|
||||||
layer: sidebar;
|
layer: sidebar;
|
||||||
}
|
}
|
||||||
@@ -97,8 +97,8 @@ DataTable {
|
|||||||
Tweet {
|
Tweet {
|
||||||
height:12;
|
height:12;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 2;
|
margin: 0 2;
|
||||||
|
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
layout: vertical;
|
layout: vertical;
|
||||||
@@ -121,9 +121,9 @@ Tweet {
|
|||||||
layout: vertical;
|
layout: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -133,12 +133,12 @@ TweetHeader {
|
|||||||
color: $text-accent
|
color: $text-accent
|
||||||
}
|
}
|
||||||
|
|
||||||
TweetBody {
|
TweetBody {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
height: auto;
|
height: auto;
|
||||||
padding: 0 1 0 0;
|
padding: 0 1 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tweet.scroll-horizontal TweetBody {
|
Tweet.scroll-horizontal TweetBody {
|
||||||
@@ -158,7 +158,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
/* padding: 1 0 0 0 ; */
|
/* padding: 1 0 0 0 ; */
|
||||||
|
|
||||||
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button:hover {
|
.button:hover {
|
||||||
@@ -178,7 +178,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
color: $text-accent;
|
color: $text-accent;
|
||||||
background: $accent;
|
background: $accent;
|
||||||
height: 1;
|
height: 1;
|
||||||
|
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
dock:bottom;
|
dock:bottom;
|
||||||
}
|
}
|
||||||
@@ -213,7 +213,7 @@ Error {
|
|||||||
color: $text-error;
|
color: $text-error;
|
||||||
border-top: tall $error-darken-2;
|
border-top: tall $error-darken-2;
|
||||||
border-bottom: tall $error-darken-2;
|
border-bottom: tall $error-darken-2;
|
||||||
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
@@ -226,21 +226,21 @@ Warning {
|
|||||||
color: $text-warning-fade-1;
|
color: $text-warning-fade-1;
|
||||||
border-top: tall $warning-darken-2;
|
border-top: tall $warning-darken-2;
|
||||||
border-bottom: tall $warning-darken-2;
|
border-bottom: tall $warning-darken-2;
|
||||||
|
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
Success {
|
Success {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
height:auto;
|
height:auto;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: $success;
|
background: $success;
|
||||||
color: $text-success-fade-1;
|
color: $text-success-fade-1;
|
||||||
|
|
||||||
border-top: hkey $success-darken-2;
|
border-top: hkey $success-darken-2;
|
||||||
border-bottom: hkey $success-darken-2;
|
border-bottom: hkey $success-darken-2;
|
||||||
|
|
||||||
text-style: bold ;
|
text-style: bold ;
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ Stopwatch {
|
|||||||
|
|
||||||
TimeDisplay {
|
TimeDisplay {
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
opacity: 60%;
|
text-opacity: 60%;
|
||||||
height: 3;
|
height: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
width: 16;
|
width: 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
#start {
|
#start {
|
||||||
@@ -30,14 +30,14 @@ Button {
|
|||||||
dock: right;
|
dock: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started {
|
.started {
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
background: $success;
|
background: $success;
|
||||||
color: $text-success;
|
color: $text-success;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started TimeDisplay {
|
.started TimeDisplay {
|
||||||
opacity: 100%;
|
text-opacity: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started #start {
|
.started #start {
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ Stopwatch {
|
|||||||
|
|
||||||
TimeDisplay {
|
TimeDisplay {
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
opacity: 60%;
|
text-opacity: 60%;
|
||||||
height: 3;
|
height: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
width: 16;
|
width: 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
#start {
|
#start {
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ Stopwatch {
|
|||||||
|
|
||||||
TimeDisplay {
|
TimeDisplay {
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
opacity: 60%;
|
text-opacity: 60%;
|
||||||
height: 3;
|
height: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
width: 16;
|
width: 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
#start {
|
#start {
|
||||||
@@ -30,14 +30,14 @@ Button {
|
|||||||
dock: right;
|
dock: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started {
|
.started {
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
background: $success;
|
background: $success;
|
||||||
color: $text-success;
|
color: $text-success;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started TimeDisplay {
|
.started TimeDisplay {
|
||||||
opacity: 100%;
|
text-opacity: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.started #start {
|
.started #start {
|
||||||
|
|||||||
@@ -4,33 +4,33 @@
|
|||||||
|
|
||||||
* {
|
* {
|
||||||
transition: color 300ms linear, background 300ms linear;
|
transition: color 300ms linear, background 300ms linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
*:hover {
|
*:hover {
|
||||||
/* tint: 30% red;
|
/* tint: 30% red;
|
||||||
/* outline: heavy red; */
|
/* outline: heavy red; */
|
||||||
}
|
}
|
||||||
|
|
||||||
App > Screen {
|
App > Screen {
|
||||||
|
|
||||||
background: $surface;
|
background: $surface;
|
||||||
color: $text-surface;
|
color: $text-surface;
|
||||||
layers: sidebar;
|
layers: sidebar;
|
||||||
|
|
||||||
color: $text-background;
|
color: $text-background;
|
||||||
background: $background;
|
background: $background;
|
||||||
layout: vertical;
|
layout: vertical;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DataTable {
|
DataTable {
|
||||||
/*border:heavy red;*/
|
/*border:heavy red;*/
|
||||||
/* tint: 10% green; */
|
/* tint: 10% green; */
|
||||||
/* opacity: 50%; */
|
/* text-opacity: 50%; */
|
||||||
padding: 1;
|
padding: 1;
|
||||||
margin: 1 2;
|
margin: 1 2;
|
||||||
height: 12;
|
height: 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar {
|
#sidebar {
|
||||||
@@ -39,7 +39,7 @@ DataTable {
|
|||||||
dock: left;
|
dock: left;
|
||||||
width: 30;
|
width: 30;
|
||||||
offset-x: -100%;
|
offset-x: -100%;
|
||||||
|
|
||||||
transition: offset 500ms in_out_cubic;
|
transition: offset 500ms in_out_cubic;
|
||||||
layer: sidebar;
|
layer: sidebar;
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ DataTable {
|
|||||||
background: $secondary-background;
|
background: $secondary-background;
|
||||||
height: 1;
|
height: 1;
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
|
|
||||||
dock: top;
|
dock: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,8 +84,8 @@ DataTable {
|
|||||||
Tweet {
|
Tweet {
|
||||||
height:12;
|
height:12;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
layout: vertical;
|
layout: vertical;
|
||||||
@@ -100,7 +100,7 @@ Tweet {
|
|||||||
|
|
||||||
|
|
||||||
.scrollable {
|
.scrollable {
|
||||||
|
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
margin: 1 2;
|
margin: 1 2;
|
||||||
height: 20;
|
height: 20;
|
||||||
@@ -108,9 +108,9 @@ Tweet {
|
|||||||
layout: vertical;
|
layout: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -120,12 +120,12 @@ TweetHeader {
|
|||||||
color: $text-accent
|
color: $text-accent
|
||||||
}
|
}
|
||||||
|
|
||||||
TweetBody {
|
TweetBody {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
height: auto;
|
height: auto;
|
||||||
padding: 0 1 0 0;
|
padding: 0 1 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tweet.scroll-horizontal TweetBody {
|
Tweet.scroll-horizontal TweetBody {
|
||||||
@@ -145,7 +145,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
/* padding: 1 0 0 0 ; */
|
/* padding: 1 0 0 0 ; */
|
||||||
|
|
||||||
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button:hover {
|
.button:hover {
|
||||||
@@ -165,7 +165,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
color: $text-accent;
|
color: $text-accent;
|
||||||
background: $accent;
|
background: $accent;
|
||||||
height: 1;
|
height: 1;
|
||||||
|
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
dock:bottom;
|
dock:bottom;
|
||||||
}
|
}
|
||||||
@@ -200,7 +200,7 @@ Error {
|
|||||||
color: $text-error;
|
color: $text-error;
|
||||||
border-top: tall $error-darken-2;
|
border-top: tall $error-darken-2;
|
||||||
border-bottom: tall $error-darken-2;
|
border-bottom: tall $error-darken-2;
|
||||||
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
@@ -213,21 +213,21 @@ Warning {
|
|||||||
color: $text-warning-fade-1;
|
color: $text-warning-fade-1;
|
||||||
border-top: tall $warning-darken-2;
|
border-top: tall $warning-darken-2;
|
||||||
border-bottom: tall $warning-darken-2;
|
border-bottom: tall $warning-darken-2;
|
||||||
|
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
Success {
|
Success {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
height:auto;
|
height:auto;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: $success;
|
background: $success;
|
||||||
color: $text-success-fade-1;
|
color: $text-success-fade-1;
|
||||||
|
|
||||||
border-top: hkey $success-darken-2;
|
border-top: hkey $success-darken-2;
|
||||||
border-bottom: hkey $success-darken-2;
|
border-bottom: hkey $success-darken-2;
|
||||||
|
|
||||||
text-style: bold ;
|
text-style: bold ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
Button {
|
Button {
|
||||||
padding-left: 1;
|
padding-left: 1;
|
||||||
padding-right: 1;
|
padding-right: 1;
|
||||||
|
margin: 3;
|
||||||
|
text-opacity: 30%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,15 +26,15 @@ class JustABox(App):
|
|||||||
yield Box(classes="box2")
|
yield Box(classes="box2")
|
||||||
|
|
||||||
def key_a(self):
|
def key_a(self):
|
||||||
self.box.styles.display = "none"
|
# self.box.styles.display = "none"
|
||||||
# self.box.styles.visibility = "hidden"
|
# self.box.styles.visibility = "hidden"
|
||||||
# self.animator.animate(
|
self.animator.animate(
|
||||||
# self.box.styles,
|
self.box.styles,
|
||||||
# "opacity",
|
"text_opacity",
|
||||||
# value=0.0,
|
value=0.0,
|
||||||
# duration=2.0,
|
duration=2.0,
|
||||||
# on_complete=self.box.remove,
|
on_complete=self.box.remove,
|
||||||
# )
|
)
|
||||||
|
|
||||||
async def on_key(self, event: events.Key) -> None:
|
async def on_key(self, event: events.Key) -> None:
|
||||||
await self.dispatch_key(event)
|
await self.dispatch_key(event)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Widget:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#footer {
|
#footer {
|
||||||
opacity: 1;
|
text-opacity: 1;
|
||||||
color: $text;
|
color: $text;
|
||||||
background: $background;
|
background: $background;
|
||||||
height: 3;
|
height: 3;
|
||||||
@@ -62,5 +62,5 @@ Widget:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#footer.dim {
|
#footer.dim {
|
||||||
opacity: 0.5;
|
text-opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,18 +4,18 @@
|
|||||||
|
|
||||||
* {
|
* {
|
||||||
transition: color 300ms linear, background 300ms linear;
|
transition: color 300ms linear, background 300ms linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
*:hover {
|
*:hover {
|
||||||
/* tint: 30% red;
|
/* tint: 30% red;
|
||||||
/* outline: heavy red; */
|
/* outline: heavy red; */
|
||||||
}
|
}
|
||||||
|
|
||||||
App > Screen {
|
App > Screen {
|
||||||
|
|
||||||
background: $surface;
|
background: $surface;
|
||||||
color: $text-surface;
|
color: $text-surface;
|
||||||
layers: base sidebar;
|
layers: base sidebar;
|
||||||
|
|
||||||
color: $text-background;
|
color: $text-background;
|
||||||
@@ -23,12 +23,12 @@ App > Screen {
|
|||||||
layout: vertical;
|
layout: vertical;
|
||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#tree-container {
|
#tree-container {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
height: 20;
|
height: 20;
|
||||||
margin: 1 2;
|
margin: 1 2;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
padding: 1 2;
|
padding: 1 2;
|
||||||
@@ -37,7 +37,7 @@ App > Screen {
|
|||||||
DirectoryTree {
|
DirectoryTree {
|
||||||
padding: 0 1;
|
padding: 0 1;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -46,10 +46,10 @@ DirectoryTree {
|
|||||||
DataTable {
|
DataTable {
|
||||||
/*border:heavy red;*/
|
/*border:heavy red;*/
|
||||||
/* tint: 10% green; */
|
/* tint: 10% green; */
|
||||||
/* opacity: 50%; */
|
/* text-opacity: 50%; */
|
||||||
padding: 1;
|
padding: 1;
|
||||||
margin: 1 2;
|
margin: 1 2;
|
||||||
height: 24;
|
height: 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar {
|
#sidebar {
|
||||||
@@ -59,7 +59,7 @@ DataTable {
|
|||||||
width: 30;
|
width: 30;
|
||||||
margin-bottom: 1;
|
margin-bottom: 1;
|
||||||
offset-x: -100%;
|
offset-x: -100%;
|
||||||
|
|
||||||
transition: offset 500ms in_out_cubic;
|
transition: offset 500ms in_out_cubic;
|
||||||
layer: sidebar;
|
layer: sidebar;
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,7 @@ Tweet {
|
|||||||
height:12;
|
height:12;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 2;
|
margin: 0 2;
|
||||||
|
|
||||||
margin:0 2;
|
margin:0 2;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
@@ -123,9 +123,9 @@ Tweet {
|
|||||||
layout: vertical;
|
layout: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -135,12 +135,12 @@ TweetHeader {
|
|||||||
color: $text-accent
|
color: $text-accent
|
||||||
}
|
}
|
||||||
|
|
||||||
TweetBody {
|
TweetBody {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: $panel;
|
background: $panel;
|
||||||
color: $text-panel;
|
color: $text-panel;
|
||||||
height: auto;
|
height: auto;
|
||||||
padding: 0 1 0 0;
|
padding: 0 1 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tweet.scroll-horizontal TweetBody {
|
Tweet.scroll-horizontal TweetBody {
|
||||||
@@ -160,7 +160,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
/* padding: 1 0 0 0 ; */
|
/* padding: 1 0 0 0 ; */
|
||||||
|
|
||||||
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
transition: background 400ms in_out_cubic, color 400ms in_out_cubic;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button:hover {
|
.button:hover {
|
||||||
@@ -180,7 +180,7 @@ Tweet.scroll-horizontal TweetBody {
|
|||||||
color: $text-accent;
|
color: $text-accent;
|
||||||
background: $accent;
|
background: $accent;
|
||||||
height: 1;
|
height: 1;
|
||||||
|
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
dock:bottom;
|
dock:bottom;
|
||||||
}
|
}
|
||||||
@@ -215,7 +215,7 @@ Error {
|
|||||||
color: $text-error;
|
color: $text-error;
|
||||||
border-top: tall $error-darken-2;
|
border-top: tall $error-darken-2;
|
||||||
border-bottom: tall $error-darken-2;
|
border-bottom: tall $error-darken-2;
|
||||||
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
@@ -228,21 +228,21 @@ Warning {
|
|||||||
color: $text-warning-fade-1;
|
color: $text-warning-fade-1;
|
||||||
border-top: tall $warning-darken-2;
|
border-top: tall $warning-darken-2;
|
||||||
border-bottom: tall $warning-darken-2;
|
border-bottom: tall $warning-darken-2;
|
||||||
|
|
||||||
text-style: bold;
|
text-style: bold;
|
||||||
align-horizontal: center;
|
align-horizontal: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
Success {
|
Success {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
height:auto;
|
height:auto;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: $success;
|
background: $success;
|
||||||
color: $text-success-fade-1;
|
color: $text-success-fade-1;
|
||||||
|
|
||||||
border-top: hkey $success-darken-2;
|
border-top: hkey $success-darken-2;
|
||||||
border-bottom: hkey $success-darken-2;
|
border-bottom: hkey $success-darken-2;
|
||||||
|
|
||||||
text-style: bold ;
|
text-style: bold ;
|
||||||
|
|
||||||
|
|||||||
@@ -237,8 +237,8 @@ class StylesCache:
|
|||||||
Returns:
|
Returns:
|
||||||
list[Segment]: New list of segments
|
list[Segment]: New list of segments
|
||||||
"""
|
"""
|
||||||
if styles.opacity != 1.0:
|
if styles.text_opacity != 1.0:
|
||||||
segments = Opacity.process_segments(segments, styles.opacity)
|
segments = Opacity.process_segments(segments, styles.text_opacity)
|
||||||
if styles.tint.a:
|
if styles.tint.a:
|
||||||
segments = Tint.process_segments(segments, styles.tint)
|
segments = Tint.process_segments(segments, styles.tint)
|
||||||
return segments if isinstance(segments, list) else list(segments)
|
return segments if isinstance(segments, list) else list(segments)
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ class StylesBuilder:
|
|||||||
"visibility", valid_values=list(VALID_VISIBILITY), context="css"
|
"visibility", valid_values=list(VALID_VISIBILITY), context="css"
|
||||||
)
|
)
|
||||||
|
|
||||||
def process_opacity(self, name: str, tokens: list[Token]) -> None:
|
def process_text_opacity(self, name: str, tokens: list[Token]) -> None:
|
||||||
if not tokens:
|
if not tokens:
|
||||||
return
|
return
|
||||||
token = tokens[0]
|
token = tokens[0]
|
||||||
@@ -342,16 +342,17 @@ class StylesBuilder:
|
|||||||
else:
|
else:
|
||||||
token_name = token.name
|
token_name = token.name
|
||||||
value = token.value
|
value = token.value
|
||||||
|
rule_name = name.replace("-", "_")
|
||||||
if token_name == "scalar" and value.endswith("%"):
|
if token_name == "scalar" and value.endswith("%"):
|
||||||
try:
|
try:
|
||||||
opacity = percentage_string_to_float(value)
|
text_opacity = percentage_string_to_float(value)
|
||||||
self.styles.set_rule(name, opacity)
|
self.styles.set_rule(rule_name, text_opacity)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
error = True
|
error = True
|
||||||
elif token_name == "number":
|
elif token_name == "number":
|
||||||
try:
|
try:
|
||||||
opacity = clamp(float(value), 0, 1)
|
text_opacity = clamp(float(value), 0, 1)
|
||||||
self.styles.set_rule(name, opacity)
|
self.styles.set_rule(rule_name, text_opacity)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
error = True
|
error = True
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class RulesMap(TypedDict, total=False):
|
|||||||
background: Color
|
background: Color
|
||||||
text_style: Style
|
text_style: Style
|
||||||
|
|
||||||
opacity: float
|
text_opacity: float
|
||||||
|
|
||||||
padding: Spacing
|
padding: Spacing
|
||||||
margin: Spacing
|
margin: Spacing
|
||||||
@@ -184,7 +184,7 @@ class StylesBase(ABC):
|
|||||||
"max_height",
|
"max_height",
|
||||||
"color",
|
"color",
|
||||||
"background",
|
"background",
|
||||||
"opacity",
|
"text_opacity",
|
||||||
"tint",
|
"tint",
|
||||||
"scrollbar_color",
|
"scrollbar_color",
|
||||||
"scrollbar_color_hover",
|
"scrollbar_color_hover",
|
||||||
@@ -204,7 +204,7 @@ class StylesBase(ABC):
|
|||||||
background = ColorProperty(Color(0, 0, 0, 0), background=True)
|
background = ColorProperty(Color(0, 0, 0, 0), background=True)
|
||||||
text_style = StyleFlagsProperty()
|
text_style = StyleFlagsProperty()
|
||||||
|
|
||||||
opacity = FractionalProperty()
|
text_opacity = FractionalProperty()
|
||||||
|
|
||||||
padding = SpacingProperty()
|
padding = SpacingProperty()
|
||||||
margin = SpacingProperty()
|
margin = SpacingProperty()
|
||||||
|
|||||||
@@ -29,14 +29,14 @@ class HeaderClock(Widget):
|
|||||||
"""Display a clock on the right of the header."""
|
"""Display a clock on the right of the header."""
|
||||||
|
|
||||||
CSS = """
|
CSS = """
|
||||||
HeaderClock {
|
HeaderClock {
|
||||||
dock: right;
|
dock: right;
|
||||||
width: auto;
|
width: auto;
|
||||||
padding: 0 1;
|
padding: 0 1;
|
||||||
background: $secondary-background-lighten-1;
|
background: $secondary-background-lighten-1;
|
||||||
color: $text-secondary-background;
|
color: $text-secondary-background;
|
||||||
opacity: 85%;
|
text-opacity: 85%;
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -51,9 +51,9 @@ class HeaderTitle(Widget):
|
|||||||
"""Display the title / subtitle in the header."""
|
"""Display the title / subtitle in the header."""
|
||||||
|
|
||||||
CSS = """
|
CSS = """
|
||||||
HeaderTitle {
|
HeaderTitle {
|
||||||
content-align: center middle;
|
content-align: center middle;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ class Header(Widget):
|
|||||||
height: 1;
|
height: 1;
|
||||||
}
|
}
|
||||||
Header.tall {
|
Header.tall {
|
||||||
height: 3;
|
height: 3;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
@@ -1098,15 +1098,15 @@ class TestParseOpacity:
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_opacity_to_styles(self, css_value, styles_value):
|
def test_opacity_to_styles(self, css_value, styles_value):
|
||||||
css = f"#some-widget {{ opacity: {css_value} }}"
|
css = f"#some-widget {{ text-opacity: {css_value} }}"
|
||||||
stylesheet = Stylesheet()
|
stylesheet = Stylesheet()
|
||||||
stylesheet.add_source(css)
|
stylesheet.add_source(css)
|
||||||
|
|
||||||
assert stylesheet.rules[0].styles.opacity == styles_value
|
assert stylesheet.rules[0].styles.text_opacity == styles_value
|
||||||
assert not stylesheet.rules[0].errors
|
assert not stylesheet.rules[0].errors
|
||||||
|
|
||||||
def test_opacity_invalid_value(self):
|
def test_opacity_invalid_value(self):
|
||||||
css = "#some-widget { opacity: 123x }"
|
css = "#some-widget { text-opacity: 123x }"
|
||||||
stylesheet = Stylesheet()
|
stylesheet = Stylesheet()
|
||||||
|
|
||||||
with pytest.raises(StylesheetParseError):
|
with pytest.raises(StylesheetParseError):
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ def test_render_styles_border():
|
|||||||
|
|
||||||
def test_get_opacity_default():
|
def test_get_opacity_default():
|
||||||
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
||||||
assert styles.opacity == 1.0
|
assert styles.text_opacity == 1.0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -136,14 +136,14 @@ def test_get_opacity_default():
|
|||||||
)
|
)
|
||||||
def test_opacity_set_then_get(set_value, expected):
|
def test_opacity_set_then_get(set_value, expected):
|
||||||
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
||||||
styles.opacity = set_value
|
styles.text_opacity = set_value
|
||||||
assert styles.opacity == expected
|
assert styles.text_opacity == expected
|
||||||
|
|
||||||
|
|
||||||
def test_opacity_set_invalid_type_error():
|
def test_opacity_set_invalid_type_error():
|
||||||
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
styles = RenderStyles(DOMNode(), Styles(), Styles())
|
||||||
with pytest.raises(StyleValueError):
|
with pytest.raises(StyleValueError):
|
||||||
styles.opacity = "invalid value"
|
styles.text_opacity = "invalid value"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
|||||||
Reference in New Issue
Block a user