mirror of
https://github.com/gradio-app/gradio.git
synced 2025-03-13 11:57:29 +08:00
* allow @media and @keyframes in custom CSS * add changeset * demo tweak * formatting * fix * tweak * add .dark test * formatting * add font-face test * support @import statements * add changeset * tweak * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
75 lines
1.4 KiB
Python
75 lines
1.4 KiB
Python
import gradio as gr
|
|
|
|
css = """
|
|
/* CSSKeyframesRule for animation */
|
|
@keyframes animation {
|
|
from {background-color: red;}
|
|
to {background-color: blue;}
|
|
}
|
|
|
|
.cool-col {
|
|
animation-name: animation;
|
|
animation-duration: 4s;
|
|
animation-iteration-count: infinite;
|
|
border-radius: 10px;
|
|
padding: 20px;
|
|
}
|
|
|
|
/* CSSStyleRule */
|
|
.markdown {
|
|
background-color: lightblue;
|
|
padding: 20px;
|
|
}
|
|
|
|
.markdown p {
|
|
color: royalblue;
|
|
}
|
|
|
|
/* CSSMediaRule */
|
|
@media screen and (max-width: 600px) {
|
|
.markdown {
|
|
background: blue;
|
|
}
|
|
.markdown p {
|
|
color: lightblue;
|
|
}
|
|
}
|
|
|
|
.dark .markdown {
|
|
background: pink;
|
|
}
|
|
|
|
.darktest h3 {
|
|
color: black;
|
|
}
|
|
|
|
.dark .darktest h3 {
|
|
color: yellow;
|
|
}
|
|
|
|
/* CSSFontFaceRule */
|
|
@font-face {
|
|
font-family: "test-font";
|
|
src: url("https://mdn.github.io/css-examples/web-fonts/VeraSeBd.ttf") format("truetype");
|
|
}
|
|
|
|
.cool-col {
|
|
font-family: "test-font";
|
|
}
|
|
|
|
/* CSSImportRule */
|
|
@import url("https://fonts.googleapis.com/css2?family=Protest+Riot&display=swap");
|
|
|
|
.markdown {
|
|
font-family: "Protest Riot", sans-serif;
|
|
}
|
|
"""
|
|
|
|
with gr.Blocks(css=css) as demo:
|
|
with gr.Column(elem_classes="cool-col"):
|
|
gr.Markdown("### Gradio Demo with Custom CSS", elem_classes="darktest")
|
|
gr.Markdown(elem_classes="markdown", value="Resize the browser window to see the CSS media query in action.")
|
|
|
|
if __name__ == "__main__":
|
|
demo.launch()
|