-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: update docs to include blogs (#371)
update docs to include blogs Co-authored-by: Red Giuliano <[email protected]>
- Loading branch information
1 parent
ed20ff2
commit d5947b5
Showing
37 changed files
with
532 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
--- | ||
title: 'Buttons in Zero-True' | ||
--- | ||
|
||
## Creating a Button | ||
|
||
Creating a button in zero-true is very easy. It’s as simple as | ||
|
||
```py | ||
import zero-true as zt | ||
button=zt.Button(id=’btn’) | ||
``` | ||
|
||
![](/blogs/photos/button.png) | ||
|
||
## Button Values | ||
|
||
Buttons return True when clicked and False otherwise. There is no need to write callbacks, simply reference buttons as follows. | ||
|
||
```py | ||
if button.value==True: print("hello")else: print("goodbye") | ||
``` | ||
|
||
## Button Use Cases | ||
|
||
Buttons have a ton of potential use cases in zero-true. The example above uses a button to toggle different printed statements but logic can be used to render more complicated layouts. One of the more common patterns for using buttons in zero-true are gating expensive computations, for example: | ||
|
||
```py | ||
import zero_true as zt | ||
import time | ||
|
||
def expensive_computation(): | ||
time.sleep(30) | ||
|
||
if button.value==True: | ||
expensive_computation() | ||
|
||
else: | ||
print("Press Button to Run Expensive Computation") | ||
``` | ||
|
||
Another use case for buttons in zero-true is getting user confirmation before submitting a form. In the example below we save feedback that a user submits in a text area under a .txt file under their name. | ||
|
||
|
||
![title](/blogs/gifs/button_computation.gif) | ||
|
||
```py | ||
import zero_true as zt | ||
|
||
#function to write feedback to a file under someone's name | ||
def write_feedback(name,text): | ||
with open(name+'.txt','w+') as file: | ||
file.write(text) | ||
|
||
#name input | ||
name_input = zt.TextInput(id='txt_i',label='Write you name') | ||
text_area = zt.TextArea(id='txt_a',label='Write your feedback here') | ||
|
||
#submission button | ||
button=zt.Button(id='btn', label= 'Submit you feedback') | ||
|
||
if button.value==True and name_input.value: | ||
write_feedback(name_input.value, text_area.value) | ||
``` | ||
|
||
![](/blogs/photos/button_form.png) | ||
|
||
## Customizing your button | ||
|
||
You can also add different colors and labels to your button to make things more interesting. Feel free to play around with all the attributes in the documentation. |
62 changes: 62 additions & 0 deletions
62
mintlify-docs/blogs/Displaying a Matplotlib Plot in zero-true.mdx
Large diffs are not rendered by default.
Oops, something went wrong.
48 changes: 48 additions & 0 deletions
48
mintlify-docs/blogs/Displaying a Pandas DataFrame in zero-true.mdx
Large diffs are not rendered by default.
Oops, something went wrong.
66 changes: 66 additions & 0 deletions
66
mintlify-docs/blogs/Displaying a Plotly Plot in zero-true.mdx
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
--- | ||
title: 'Range Sliders in zero-true' | ||
--- | ||
|
||
## Creating a Range Slider | ||
|
||
Creating a rage slider in zero-true is simple. Type: | ||
|
||
```py | ||
import zero-true as zt | ||
range_slider=zt.RangeSlider(id='slider') | ||
``` | ||
|
||
![][image1] | ||
|
||
Run the cell in your notebook, and watch the range slider appear below. | ||
|
||
## Range Slider Settings and Values | ||
|
||
Range Sliders have a minimum, maximum, and step in zero-true. The default values for min and max are 0 and 100 and the step is 1 but you can set them to whatever you’d like. The range slider value will return a list structured as follows \[min,max\]. Here is a little snippet to show you how to access the min and max values from your range slider. | ||
|
||
```py | ||
max = range_slider.value[0] | ||
min = range_slider.value[1] | ||
|
||
print("Min val is "+str(min)+ " and max val is "+str(max)) | ||
``` | ||
|
||
## ![][image2] | ||
|
||
## Range Slider Use Cases | ||
|
||
Sliders can be used to capture any numeric input. Here is a more fleshed out example including filtering a dataframe: | ||
|
||
```py | ||
import pandas as pd | ||
import zero_true as zt | ||
|
||
novels_df = pd.read_html("https://en.wikipedia.org/w/index.php?title=Science_Fiction:_The_100_Best_Novels&oldid=1091082777", match='The 100 Best Novels')[0] | ||
|
||
#define a slider in zero-true to filter the data | ||
range_slider=zt.RangeSlider(id='range_slider',min=1, max=100,label='Move the Slider to Filter the DataFrame') | ||
if not range_slider.value: | ||
range_slider.value=[0,100] | ||
zt.dataframe(id='df',df=novels_df[range_slider.value[0]:range_slider.value[1]]) | ||
``` | ||
|
||
![title](/blogs/gifs/range slider.gif) | ||
|
||
|
||
## Customizing your Range Slider | ||
|
||
You can also add different colors and labels to your slider to make it to your liking. Feel free to check out the full range of options with the api reference for a slider. | ||
|
||
[image1]: <data:image/png;base64,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> | ||
|
||
[image2]: <data:image/png;base64,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> |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.