Table of Contents
Open Table of Contents
The Journey to Find the Perfect Theme
Just like every developer customizes their IDE, my journey started with Typora’s official theme gallery. I remember spending an entire afternoon trying out all the available themes. Some were minimalist, others feature-rich; some suited for academic writing, others for creative work.
But something was always missing.
This isn’t to say these themes weren’t good - many were excellent. But just like you wouldn’t wear someone else’s tailored suit, even the best theme can feel awkward if it doesn’t match your personal habits.
After trying the Nth theme, I finally understood: the perfect theme doesn’t exist because “perfect” is personal. What’s perfect for one writer might feel like wearing the wrong shoe size to another. This realization led me to make a decision: instead of searching further, why not create a theme that’s truly my own?
From Markdown to Typora
I’ve been using Typora for several years now. I first discovered it when I encountered the fascinating Markdown syntax. As I used it more, I grew to appreciate how clever Markdown’s design is - using the simplest symbols to express document structure, making writing incredibly smooth.
Now I write my personal blog in Markdown too. As I write more articles, my requirements for the writing environment have grown higher. After all, who doesn’t want a pleasing creative environment? This is what motivated me to start customizing my Typora theme.
Why Customize Typora?
The initial motivation for customization came from several specific issues:
-
Font Issues
- Chinese font rendering wasn’t clear enough, especially for bold text
- Poor distinction between code and regular fonts
- Wanted more modern font combinations
-
Color Issues
- Dark theme backgrounds were either too dark or too light
- Code highlighting colors weren’t harmonious
- Some elements lacked sufficient contrast
-
Code Display
- Code block styling was too basic
- Syntax highlighting colors weren’t aesthetically pleasing
- Inconsistent visual effects between inline code and code blocks
Birth of NeonScribe
Having decided to write my own theme, I started from scratch. I named it “NeonScribe”, inspired by the neon elements in cyberpunk style. Why this name? Because I wanted this theme to make writing more interesting through neon-like colors against a dark background.
Design Principles
-
Readability First
- Carefully selected text and code fonts
- Optimized line height and spacing
- Clear visual hierarchy
-
Focus on Content
- Minimal distractions
- Clean design
- Well-thought-out color scheme
-
Consistent Experience
- Unified element styles
- Smooth transitions
- Balanced contrast
Font Optimization
After extensive testing, I chose Noto Sans SC as the main font. It provides clear Chinese rendering and stands out particularly well in bold. For code sections, I used a monospace font to ensure clean code alignment.
Color Scheme
The entire theme’s color scheme revolves around the cyberpunk style:
- Neon Green
#00ffa6
: For emphasis and highlights - Theme Purple
#686bdd
: For headings and important text - Deep Background
#1a1b1c
: For comfortable reading
Code Highlighting
/* Color customization for code block elements */
.cm-s-inner .cm-variable,
.cm-s-inner .cm-operator,
.cm-s-inner .cm-property {
color: #00ffa6; /* Using neon green, consistent with inline code */
}
.cm-s-inner .cm-keyword {
color: #686bdd; /* Keywords use theme purple */
}
Future Plans
This theme continues to evolve. Next, I plan to:
- Optimize code block styles
- Improve heading hierarchy visual effects
- Enhance print styles
Epilogue
Creating your own theme is like decorating your workspace. It doesn’t need to be fancy, but it must feel comfortable to use. This process taught me that a tool’s value isn’t in how many features it has, but in how well it fits your needs.