Quotes Widget
This iOS widget fetches a quote from your personal Google Sheet and displays it with dynamic styling.
It supports:
- Daily randomized quotes
- Manual quote selection by index
- Custom font/background color
- Size-aware filtering for small, medium, and large widgets
Built using Scriptable and the Google Visualization API.
✨ Features
- ✍️ Pulls quotes from multiple categories (tabs) like
gita
,zen
,kafka
, etc. - 🎯 Supports fixed index selection for showing specific quotes
- 📏 Adapts font size and filtering based on widget size
- 🎨 Automatically loads font/background color from Google Sheet or fallback themes
- 🔄 Refreshes daily at midnight to show a new quote
⚙️ Setup
Google Sheet Structure
Your Google Sheet must follow this structure (per tab):
Quote | Author | Font Color (hex) | Background Color (hex) |
---|---|---|---|
“He who has a why...” | Nietzsche | #FFFFFF | #1A1A1A |
“The unexamined life...” | Socrates | (optional) | (optional) |
Each category (e.g., gita
, zen
) should be a separate tab.
Sheet ID used:
1amFMwf_j83eRLNOAWnqMNfA3ZyE6igqjZF_OrSNww84
🎨 Color Fallbacks
If no font or background color is specified for a quote, the widget loads a random fallback from:
.source/dark_theme_color_pairs.json
Each entry should follow:
[
{ "font": "#FFFFFF", "background": "#1A1A1A" },
{ "font": "#E0E0E0", "background": "#2C3E50" }
]
📦 Local File Requirements
.source/dark_theme_color_pairs.json
(optional, for color fallback)(Optional)
.fonts/
directory for custom font loading (currently unused)
🔄 Auto-Refresh
The widget refreshes automatically at midnight using:
widget.refreshAfterDate = tomorrowAtMidnight;
To force refresh during development, use:
if (!config.runsInWidget) await widget.presentMedium();
🔧 Installation Guide
- Install Scriptable from the App Store
- Copy the Widget Code from this repo into a new script in Scriptable
- Save the script as
QuoteWidget.js
- Create the folders:
Scriptable/.source/
→ fordark_theme_color_pairs.json
- (optional)
Scriptable/.fonts/
→ for custom font support
- (Optional) Add your own
quote spreadsheet
to Google Sheets and update theSHEET_ID
- Add a Scriptable Widget to your Home Screen
- Long-press the widget → Edit Widget
- Set Script to
QuoteWidget
- Use one of the supported parameters, like
zen
,fyodor,12,m
, etc.
🧩 Widget Parameters
You can configure the widget by passing 1 to 3 comma-separated values:
<category>, <index>, <size>
The order doesn't matter. Examples:
Parameter | Meaning |
---|---|
zen | Today's quote from zen tab |
42,zen | Quote at index 42 from zen |
kafka,99,l | Large widget showing quote #99 from kafka |
machiavelli,s,3 | Small widget, quote #3 from machiavelli |
s | Today's quote from default category, small widget |
8 | Quote #8 from default category |
Available Categories
myquotes
gita
zen
machiavelli
aurelius
fyodor
kafka
Widget Sizes
s
→ Smallm
→ Mediuml
→ Large
📸 Screenshot
Small Widgets
![]() | ![]() |
---|---|
![]() | ![]() |
Medium Widgets
![]() | ![]() |
---|---|
![]() | ![]() |
Large Widgets
![]() | ![]() |
---|
🙌 Feedback
Have feature ideas or issues? DM me on Instagram or email me at rushiofficial1205@gmail.com.
Widgets shouldn’t be limited to timers—I’d love to build tools that help you passively learn, reflect, or stay organized. If you have a unique concept in mind, I’d love to collaborate.
📜 License
This project is licensed under the MIT License.
Feel free to fork, build upon, and remix with attribution.
Enjoy using this widget ~ RP