├── .gitignore
├── README.md
├── chrome
└── src
│ ├── icon.svg
│ ├── icon128.png
│ ├── icon48.png
│ ├── manifest.json
│ └── twipster.css
├── dist
├── Twipster.safariextz
├── twipster-chrome-2.0.0.zip
└── twipster-chrome-2.0.1.zip
├── google7a6ce854d6f18adc.html
├── gulpfile.js
├── index.html
├── package.json
├── safari
├── Twipster.safariextension
│ ├── Icon.png
│ ├── Info.plist
│ └── twipster.css
└── Update.plist
├── site
├── _basscss.scss
├── icon128.png
├── screenshot.png
├── style.css
├── style.scss
└── twipster.svg
└── src
└── twipster.css
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | .DS_Store
3 | _site
4 |
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Twipster
2 | ========
3 |
4 | **No longer maintained**
5 |
6 | See these alternatives:
7 | - [Twitter Lite](https://mobile.twitter.com)
8 | - [Refined Twitter](https://github.com/sindresorhus/refined-twitter)
9 |
--------------------------------------------------------------------------------
/chrome/src/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
40 |
--------------------------------------------------------------------------------
/chrome/src/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/chrome/src/icon128.png
--------------------------------------------------------------------------------
/chrome/src/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/chrome/src/icon48.png
--------------------------------------------------------------------------------
/chrome/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 2,
3 | "name": "Twipster",
4 | "description": "Simpler, Readabler Twitter",
5 | "icons": {
6 | "48": "icon48.png",
7 | "128": "icon128.png" },
8 | "version": "2.0.1",
9 | "homepage_url": "http://github.com/jxnblk/Twipster",
10 | "content_scripts": [
11 | {
12 | "matches": ["*://*.twitter.com/*"],
13 | "css": ["twipster.css"],
14 | "run_at": "document_end"
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/chrome/src/twipster.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Twipster
3 | * Chrome and Safari extensions for a more readable Twitter experience
4 | *
5 | * http://jxnblk.com/Twipster
6 | *
7 | */
8 |
9 |
10 | /* Tweet text styles */
11 | .tweet-text,
12 | .ProfileTweet-text {
13 | font-family: Georgia !important;
14 | font-size: 20px !important;
15 | line-height: 1.5 !important;
16 | color: #444 !important;
17 | margin-bottom: 0.25em !important;
18 | }
19 |
20 |
21 | /* Compose tweet field */
22 | .tweet-box {
23 | font-size: 18px !important;
24 | line-height: 24px !important;
25 | }
26 |
27 | /* Hide modules and promotions */
28 | .trends, /* Trends module */
29 | .promptbird, /* Prompt above timeline */
30 | .enhanced-media-thumbnails, /* Inline images */
31 | .content-header, /* Tweets column header */
32 | .promoted-tweet, /* Promoted tweets */
33 | .Footer, /* Site footer */
34 | .site-footer,
35 | .DashboardProfileCard, /* Profile card on home */
36 | .WhoToFollow, /* Who to follow module */
37 | .wtf-module {
38 | display: none !important;
39 | }
40 |
41 | /* Hide inline media */
42 | .cards-media-container,
43 | .card2 {
44 | display: none !important;
45 | }
46 |
47 | /* Show media when expanded or in detail view */
48 | .expanding-stream-item.open .cards-media-container,
49 | .permalink-tweet .cards-media-container,
50 | .expanding-stream-item.open .card2,
51 | .permalink-tweet .card2 {
52 | display: block !important;
53 | }
54 |
55 |
56 | /* Remove Borders */
57 | .stream-item,
58 | .tweet,
59 | .stream-loading,
60 | .stream-end,
61 | .new-tweets-bar,
62 | .module {
63 | border: none !important;
64 | }
65 |
66 | .stream-item-activity-me {
67 | border-bottom: none !important;
68 | }
69 |
70 | .user-similarities-list {
71 | border: 1px solid rgba(0,0,0,.1) !important;
72 | overflow: hidden !important;
73 | }
74 |
75 |
76 | /* Single Column Layout */
77 |
78 | .wrapper-settings .content-header {
79 | display: block !important;
80 | }
81 |
82 | .wrapper,
83 | .wrapper-narrow,
84 | .wrapper-permalink {
85 | background: none !important;
86 | width: 90% !important;
87 | max-width: 56em !important;
88 | }
89 |
90 | .dashboard,
91 | .content-main {
92 | float: none !important;
93 | width: 100% !important;
94 | }
95 |
96 | /* Subnavigation */
97 | .module ul li {
98 | display: inline-block !important;
99 | }
100 | .module ul li .Icon--caretRight {
101 | display: none !important;
102 | }
103 | .list-link {
104 | border: 0 !important;
105 | }
106 |
107 | /* White background */
108 | body,
109 | body.ProfilePage {
110 | background-image: none !important;
111 | background-color: #fff !important;
112 | }
113 |
114 |
115 | /* Compose Tweet Modal */
116 |
117 | .tweet-box {
118 | width: 95% !important;
119 | height: auto !important;
120 | min-height: 80px !important;
121 | padding: 8px 2.5% !important;
122 | }
123 |
124 | .tweet-form.has-preview.has-thumbnail .tweet-box {
125 | padding-bottom: 80px !important;
126 | }
127 |
128 | .tweet-form .thumbnail-container {
129 | width: auto !important;
130 | }
131 |
132 |
133 | /* Modals */
134 | .modal {
135 | width: 90% !important;
136 | max-width: 56em !important;
137 | left: 0 !important;
138 | right: 0 !important;
139 | margin: 0 auto !important;
140 | }
141 |
142 |
--------------------------------------------------------------------------------
/dist/Twipster.safariextz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/dist/Twipster.safariextz
--------------------------------------------------------------------------------
/dist/twipster-chrome-2.0.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/dist/twipster-chrome-2.0.0.zip
--------------------------------------------------------------------------------
/dist/twipster-chrome-2.0.1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/dist/twipster-chrome-2.0.1.zip
--------------------------------------------------------------------------------
/google7a6ce854d6f18adc.html:
--------------------------------------------------------------------------------
1 | google-site-verification: google7a6ce854d6f18adc.html
2 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 |
2 | var gulp = require('gulp');
3 | var rename = require('gulp-rename');
4 | var zip = require('gulp-zip');
5 | var chrome = require('./chrome/src/manifest');
6 |
7 | gulp.task('css', function() {
8 | gulp.src('./src/twipster.css')
9 | .pipe(gulp.dest('./chrome/src'))
10 | .pipe(gulp.dest('./safari/Twipster.safariextension'));
11 | });
12 |
13 | gulp.task('chrome', function() {
14 | gulp.src('./chrome/src/**/*')
15 | .pipe(zip('twipster-chrome-' + chrome.version + '.zip'))
16 | .pipe(gulp.dest('./dist'));
17 | });
18 |
19 | gulp.task('default', ['css', 'chrome']);
20 |
21 | gulp.task('watch', ['default'], function() {
22 | gulp.watch(['./src/twipster.css'], ['default']);
23 | });
24 |
25 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Twipster
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
23 |
24 |
25 | Install now
26 | Twipster is a browser extension that alters the styles for twitter.com.
27 | Add to Chrome
28 | Add to Safari
29 |
30 |
31 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Twipster",
3 | "version": "2.0.1",
4 | "description": "Chrome extension for a simpler, more readable Twitter experience",
5 | "repository": {
6 | "type": "git",
7 | "url": "git://github.com/jxnblk/Twipster.git"
8 | },
9 | "author": "Brent Jackson",
10 | "license": "MIT",
11 | "bugs": {
12 | "url": "https://github.com/jxnblk/Twipster/issues"
13 | },
14 | "homepage": "https://github.com/jxnblk/Twipster",
15 | "devDependencies": {
16 | "gulp-rename": "^1.2.0",
17 | "gulp": "^3.8.8",
18 | "gulp-zip": "^2.0.2"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/safari/Twipster.safariextension/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/safari/Twipster.safariextension/Icon.png
--------------------------------------------------------------------------------
/safari/Twipster.safariextension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Author
6 | Brent Jackson
7 | Builder Version
8 | 10600.1.25
9 | CFBundleDisplayName
10 | Twipster
11 | CFBundleIdentifier
12 | com.jxnblk.twipster
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleShortVersionString
16 | 2.0
17 | CFBundleVersion
18 | 2.0.1
19 | Chrome
20 |
21 | Content
22 |
23 | Scripts
24 |
25 | Stylesheets
26 |
27 | twipster.css
28 |
29 |
30 | Description
31 | Simpler, More Readable Styles for Twitter.com
32 | DeveloperIdentifier
33 | 36T97MXRKC
34 | ExtensionInfoDictionaryVersion
35 | 1.0
36 | Permissions
37 |
38 | Website Access
39 |
40 | Allowed Domains
41 |
42 | twitter.com
43 |
44 | Include Secure Pages
45 |
46 | Level
47 | Some
48 |
49 |
50 | Update Manifest URL
51 | http://jxnblk.com/Twipster/safari/Update.plist
52 | Website
53 | http://github.com/jxnblk/Twipster
54 |
55 |
56 |
--------------------------------------------------------------------------------
/safari/Twipster.safariextension/twipster.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Twipster
3 | * Chrome and Safari extensions for a more readable Twitter experience
4 | *
5 | * http://jxnblk.com/Twipster
6 | *
7 | */
8 |
9 |
10 | /* Tweet text styles */
11 | .tweet-text,
12 | .ProfileTweet-text {
13 | font-family: Georgia !important;
14 | font-size: 20px !important;
15 | line-height: 1.5 !important;
16 | color: #444 !important;
17 | margin-bottom: 0.25em !important;
18 | }
19 |
20 |
21 | /* Compose tweet field */
22 | .tweet-box {
23 | font-size: 18px !important;
24 | line-height: 24px !important;
25 | }
26 |
27 | /* Hide modules and promotions */
28 | .trends, /* Trends module */
29 | .promptbird, /* Prompt above timeline */
30 | .enhanced-media-thumbnails, /* Inline images */
31 | .content-header, /* Tweets column header */
32 | .promoted-tweet, /* Promoted tweets */
33 | .Footer, /* Site footer */
34 | .site-footer,
35 | .DashboardProfileCard, /* Profile card on home */
36 | .WhoToFollow, /* Who to follow module */
37 | .wtf-module {
38 | display: none !important;
39 | }
40 |
41 | /* Hide inline media */
42 | .cards-media-container,
43 | .card2 {
44 | display: none !important;
45 | }
46 |
47 | /* Show media when expanded or in detail view */
48 | .expanding-stream-item.open .cards-media-container,
49 | .permalink-tweet .cards-media-container,
50 | .expanding-stream-item.open .card2,
51 | .permalink-tweet .card2 {
52 | display: block !important;
53 | }
54 |
55 |
56 | /* Remove Borders */
57 | .stream-item,
58 | .tweet,
59 | .stream-loading,
60 | .stream-end,
61 | .new-tweets-bar,
62 | .module {
63 | border: none !important;
64 | }
65 |
66 | .stream-item-activity-me {
67 | border-bottom: none !important;
68 | }
69 |
70 | .user-similarities-list {
71 | border: 1px solid rgba(0,0,0,.1) !important;
72 | overflow: hidden !important;
73 | }
74 |
75 |
76 | /* Single Column Layout */
77 |
78 | .wrapper-settings .content-header {
79 | display: block !important;
80 | }
81 |
82 | .wrapper,
83 | .wrapper-narrow,
84 | .wrapper-permalink {
85 | background: none !important;
86 | width: 90% !important;
87 | max-width: 56em !important;
88 | }
89 |
90 | .dashboard,
91 | .content-main {
92 | float: none !important;
93 | width: 100% !important;
94 | }
95 |
96 | /* Subnavigation */
97 | .module ul li {
98 | display: inline-block !important;
99 | }
100 | .module ul li .Icon--caretRight {
101 | display: none !important;
102 | }
103 | .list-link {
104 | border: 0 !important;
105 | }
106 |
107 | /* White background */
108 | body,
109 | body.ProfilePage {
110 | background-image: none !important;
111 | background-color: #fff !important;
112 | }
113 |
114 |
115 | /* Compose Tweet Modal */
116 |
117 | .tweet-box {
118 | width: 95% !important;
119 | height: auto !important;
120 | min-height: 80px !important;
121 | padding: 8px 2.5% !important;
122 | }
123 |
124 | .tweet-form.has-preview.has-thumbnail .tweet-box {
125 | padding-bottom: 80px !important;
126 | }
127 |
128 | .tweet-form .thumbnail-container {
129 | width: auto !important;
130 | }
131 |
132 |
133 | /* Modals */
134 | .modal {
135 | width: 90% !important;
136 | max-width: 56em !important;
137 | left: 0 !important;
138 | right: 0 !important;
139 | margin: 0 auto !important;
140 | }
141 |
142 |
--------------------------------------------------------------------------------
/safari/Update.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Extension Updates
6 |
7 |
8 | CFBundleIdentifier
9 | com.jxnblk.safari.twipster
10 | Developer Identifier
11 | 36T97MXRKC
12 | CFBundleVersion
13 | 2.0.1
14 | CFBundleShortVersionString
15 | 2.0
16 | URL
17 | http://jxnblk.com/Twipster/dist/Twipster.safariextz
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/site/_basscss.scss:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | BASSCSS
4 |
5 | Part reset, part boilerplate, part framework, all minimal.
6 |
7 | BASSCSS is a small reset and collection of simple type and layout
8 | classes that can be used as the basis for any web project.
9 | Use it out of the box or as a base for a larger SASS project.
10 |
11 |
12 | Contents:
13 | 1. Reset
14 | 2. Typography
15 | a. Default Font Stack
16 | b. Base Type Scale
17 | c. Responsive Type Scale
18 | d. Utilities
19 | 3. Layout
20 | a. Margins
21 | b. Padding
22 | c. Display
23 | d. Utilities
24 |
25 |
26 | Made with love by Jxnblk
27 |
28 | */
29 |
30 |
31 |
32 |
33 | // Settings
34 |
35 | // Defines whether or not to reset margins to 0
36 | // $reset-margins: true;
37 | // Default font stack
38 | // $font-primary: 'Helvetica Neue', Helvetica, sans-serif;
39 | // Base spacing unit
40 | // $space: 1rem;
41 |
42 |
43 |
44 |
45 | // Reset
46 |
47 | $reset-margins: true !default;
48 | @if ($reset-margins == true) {
49 | body, h1, h2, h3, h4, h5, h6, dl, ol, ul, p,
50 | button, input, select, textarea { margin: 0; }
51 | }
52 |
53 | button, input, select, textarea { font-family: inherit; font-size: 100%; }
54 | article, aside, details, figcaption, figure, footer, header, main, nav, section, summary { display: block; }
55 |
56 |
57 |
58 |
59 | // Typography
60 |
61 | // Default Font Stack
62 | $font-primary: 'Helvetica Neue', Helvetica, sans-serif !default;
63 |
64 | // Base spacing unit
65 | $space: 1rem !default;
66 |
67 | body {
68 | font-family: $font-primary;
69 | line-height: 1.5;
70 | font-weight: 400;
71 | }
72 |
73 | // Base Type Scale
74 | h1, .h1 {
75 | font-size: 2rem;
76 | line-height: 1.25;
77 | }
78 |
79 | h2, .h2 {
80 | font-size: 1.5rem;
81 | line-height: 1.25;
82 | }
83 |
84 | h3, h4, h5, h6, dl, ol, ul, p, .p {
85 | font-size: 1.125em;
86 | }
87 |
88 | small, .small {
89 | font-size: .875em;
90 | }
91 |
92 | // Responsive Type Scale
93 | // Apply the .responsive class directly to elements or their parents
94 | .responsive {
95 | @media (min-width: 896px) {
96 | .h1, &.h1 { font-size: 4rem; }
97 | .h2, &.h2 { font-size: 2rem; }
98 | .p, &.p { font-size: 1.25rem; }
99 | .small, &.small { font-size: 1rem; }
100 | }
101 | @media (min-width: 1280px) {
102 | .h1, &.h1 { font-size: 5rem; }
103 | .h2, &.h2 { font-size: 3rem; }
104 | }
105 | }
106 |
107 | // Utilities
108 | strong, .bold { font-weight: bold; }
109 | .regular { font-weight: normal; }
110 | .caps { text-transform: uppercase; letter-spacing: .2em; }
111 | .center { text-align: center; }
112 | .right-align { text-align: right; }
113 |
114 | // Type Spacing
115 | // Apply the .type-margins class to parent elements for default type spacing
116 | .type-margins {
117 | h1, .h1 { margin-bottom: $space; }
118 | h2, .h2 { margin-bottom: $space; }
119 | h3, h4, h5, h6, p, dl, ol, ul { margin-bottom: $space; }
120 | }
121 |
122 |
123 |
124 | // Layout
125 |
126 | // Margins
127 | .m1 { margin: $space; }
128 | .mt1 { margin-top: $space; }
129 | .mr1 { margin-right: $space; }
130 | .mb1 { margin-bottom: $space; }
131 | .ml1 { margin-left: $space; }
132 |
133 | .m2 { margin: 2 * $space; }
134 | .mt2 { margin-top: 2 * $space; }
135 | .mr2 { margin-right: 2 * $space; }
136 | .mb2 { margin-bottom: 2 * $space; }
137 | .ml2 { margin-left: 2 * $space; }
138 |
139 | .m3 { margin: 3 * $space; }
140 | .mt3 { margin-top: 3 * $space; }
141 | .mr3 { margin-right: 3 * $space; }
142 | .mb3 { margin-bottom: 3 * $space; }
143 | .ml3 { margin-left: 3 * $space; }
144 |
145 | .m4 { margin: 4 * $space; }
146 | .mt4 { margin-top: 4 * $space; }
147 | .mr4 { margin-right: 4 * $space; }
148 | .mb4 { margin-bottom: 4 * $space; }
149 | .ml4 { margin-left: 4 * $space; }
150 |
151 | // Useful for horizontally center elements with a fixed width
152 | .mxa { margin-right: auto; margin-left: auto; }
153 |
154 | // Padding
155 | .p1 { padding: $space; }
156 | .px1 { padding-right: $space; padding-left: $space; }
157 | .py1 { padding-top: $space; padding-bottom: $space; }
158 |
159 | .p2 { padding: 2 * $space; }
160 | .px2 { padding-right: 2 * $space; padding-left: 2 * $space; }
161 | .py2 { padding-top: 2 * $space; padding-bottom: 2 * $space; }
162 |
163 | .p3 { padding: 3 * $space; }
164 | .px3 { padding-right: 3 * $space; padding-left: 3 * $space; }
165 | .py3 { padding-top: 3 * $space; padding-bottom: 3 * $space; }
166 |
167 | .p4 { padding: 4 * $space; }
168 | .px4 { padding-right: 4 * $space; padding-left: 4 * $space; }
169 | .py4 { padding-top: 4 * $space; padding-bottom: 4 * $space; }
170 |
171 | // Display
172 | .inline { display: inline;}
173 | .block { display: block; }
174 | .inline-block { display: inline-block; }
175 | .table { display: table; }
176 | .table-cell { display: table-cell; vertical-align: middle; }
177 |
178 | // Utilities
179 | .clearfix { overflow: hidden; }
180 | // .clearfix {
181 | // &:before, &:after { content: " "; display: table; }
182 | // &:after { clear: both; }
183 | // }
184 | .left { float: left; }
185 | .right { float: right; }
186 |
187 | .fit { max-width: 100%; }
188 |
--------------------------------------------------------------------------------
/site/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/site/icon128.png
--------------------------------------------------------------------------------
/site/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jxnblk/Twipster/97702e2ca3e9416cc43a80aa5de7aab6f94482f7/site/screenshot.png
--------------------------------------------------------------------------------
/site/style.css:
--------------------------------------------------------------------------------
1 | body,h1,h2,h3,h4,h5,h6,dl,ol,ul,p,button,input,select,textarea{margin:0}button,input,select,textarea{font-family:inherit;font-size:100%}article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display:block}body{font-family:"Helvetica Neue",Helvetica,sans-serif;line-height:1.5;font-weight:400}h1,.h1{font-size:2rem;line-height:1.25}h2,.h2{font-size:1.5rem;line-height:1.25}h3,h4,h5,h6,dl,ol,ul,p,.p{font-size:1.125em}small,.small{font-size:.875em}@media (min-width: 896px){.responsive .h1,.responsive.h1{font-size:4rem}.responsive .h2,.responsive.h2{font-size:2rem}.responsive .p,.responsive.p{font-size:1.25rem}.responsive .small,.responsive.small{font-size:1rem}}@media (min-width: 1280px){.responsive .h1,.responsive.h1{font-size:5rem}.responsive .h2,.responsive.h2{font-size:3rem}}strong,.bold{font-weight:bold}.regular{font-weight:normal}.caps{text-transform:uppercase;letter-spacing:.2em}.center{text-align:center}.right-align{text-align:right}.type-margins h1,.type-margins .h1{margin-bottom:1rem}.type-margins h2,.type-margins .h2{margin-bottom:1rem}.type-margins h3,.type-margins h4,.type-margins h5,.type-margins h6,.type-margins p,.type-margins dl,.type-margins ol,.type-margins ul{margin-bottom:1rem}.m1{margin:1rem}.mt1{margin-top:1rem}.mr1{margin-right:1rem}.mb1{margin-bottom:1rem}.ml1{margin-left:1rem}.m2{margin:2rem}.mt2{margin-top:2rem}.mr2{margin-right:2rem}.mb2{margin-bottom:2rem}.ml2{margin-left:2rem}.m3{margin:3rem}.mt3{margin-top:3rem}.mr3{margin-right:3rem}.mb3{margin-bottom:3rem}.ml3{margin-left:3rem}.m4{margin:4rem}.mt4{margin-top:4rem}.mr4{margin-right:4rem}.mb4{margin-bottom:4rem}.ml4{margin-left:4rem}.mxa{margin-right:auto;margin-left:auto}.p1{padding:1rem}.px1{padding-right:1rem;padding-left:1rem}.py1{padding-top:1rem;padding-bottom:1rem}.p2{padding:2rem}.px2{padding-right:2rem;padding-left:2rem}.py2{padding-top:2rem;padding-bottom:2rem}.p3{padding:3rem}.px3{padding-right:3rem;padding-left:3rem}.py3{padding-top:3rem;padding-bottom:3rem}.p4{padding:4rem}.px4{padding-right:4rem;padding-left:4rem}.py4{padding-top:4rem;padding-bottom:4rem}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.table{display:table}.table-cell{display:table-cell;vertical-align:middle}.clearfix{overflow:hidden}.left{float:left}.right{float:right}.fit{max-width:100%}.helvetica{font-family:Helvetica, Arial, sans-serif}.georgia{font-family:Georgia, serif}.square2{width:2em;height:2em}.full-width{width:100%}@media (min-width: 896px){.p2{padding:4rem}.px2{padding-right:4rem;padding-left:4rem}}.btn{font-weight:bold;display:inline-block;line-height:3;padding-right:1rem;padding-left:1rem;border-radius:0.25rem}.tiles{overflow:hidden;margin-right:-1rem}.tile{float:left;width:100%;margin-right:1rem}@media (min-width: 512px){.tile{width:calc(50% - 1rem)}}a{color:#34a9de;text-decoration:none}a:hover{color:#13b5ff}.white{color:white}.blue{color:#34a9de}.dark-blue{color:#1a546f}.light-gray{color:#e0e6ef}.mid-gray{color:#aaa}.dark-gray{color:#444}.bg-white{background-color:white}.bg-blue{background-color:#34a9de}.bg-dark-blue{background-color:#1a546f}.bg-light-gray{background-color:#e0e6ef}.bg-dark-gray{background-color:#444}.btn-blue{color:white;background-color:#34a9de}.btn-blue:hover{color:white;background-color:#13b5ff}.rounded{border-radius:0.25rem}
2 |
--------------------------------------------------------------------------------
/site/style.scss:
--------------------------------------------------------------------------------
1 | // Twipster
2 |
3 | @import "basscss";
4 |
5 | .helvetica { font-family: Helvetica, Arial, sans-serif; }
6 | .georgia { font-family: Georgia, serif; }
7 | .square2 { width: 2em; height: 2em; }
8 | .full-width { width: 100%; }
9 |
10 | // Partially responsive padding
11 | @media (min-width: 896px) {
12 | .p2 { padding: 4*$space; }
13 | .px2 { padding-right: 4*$space; padding-left: 4*$space; }
14 | }
15 |
16 | .btn {
17 | font-weight: bold;
18 | display: inline-block;
19 | line-height: 3;
20 | padding-right: $space;
21 | padding-left: $space;
22 | border-radius: .25*$space;
23 | }
24 |
25 | .tiles {
26 | overflow: hidden;
27 | margin-right: -$space;
28 | }
29 |
30 | .tile {
31 | float: left;
32 | width: 100%;
33 | margin-right: $space;
34 | @media (min-width: 512px) {
35 | width: calc(50% - #{$space});
36 | }
37 | }
38 |
39 | // Theme
40 |
41 | $blue: #34a9de;
42 | $dark-blue: #1a546f;
43 | $light-gray: #e0e6ef;
44 | $mid-gray: #aaa;
45 | $dark-gray: #444;
46 |
47 | a {
48 | color: $blue;
49 | text-decoration: none;
50 | &:hover {
51 | color: saturate($blue, 30%);
52 | }
53 | }
54 |
55 | .white { color: white; }
56 | .blue { color: $blue; }
57 | .dark-blue { color: $dark-blue; }
58 | .light-gray { color: $light-gray; }
59 | .mid-gray { color: $mid-gray; }
60 | .dark-gray { color: $dark-gray; }
61 |
62 | .bg-white { background-color: white; }
63 | .bg-blue { background-color: $blue; }
64 | .bg-dark-blue { background-color: $dark-blue; }
65 | .bg-light-gray { background-color: $light-gray; }
66 | .bg-dark-gray { background-color: $dark-gray; }
67 |
68 | .btn-blue {
69 | color: white;
70 | background-color: $blue;
71 | &:hover {
72 | color: white;
73 | background-color: saturate($blue, 40%);
74 | }
75 | }
76 |
77 | .rounded { border-radius: .25*$space; }
78 |
--------------------------------------------------------------------------------
/site/twipster.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
33 |
--------------------------------------------------------------------------------
/src/twipster.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Twipster
3 | * Chrome and Safari extensions for a more readable Twitter experience
4 | *
5 | * http://jxnblk.com/Twipster
6 | *
7 | */
8 |
9 |
10 | /* Tweet text styles */
11 | .tweet-text,
12 | .ProfileTweet-text {
13 | font-family: Georgia !important;
14 | font-size: 20px !important;
15 | line-height: 1.5 !important;
16 | color: #444 !important;
17 | margin-bottom: 0.25em !important;
18 | }
19 |
20 |
21 | /* Compose tweet field */
22 | .tweet-box {
23 | font-size: 18px !important;
24 | line-height: 24px !important;
25 | }
26 |
27 | /* Hide modules and promotions */
28 | .trends, /* Trends module */
29 | .promptbird, /* Prompt above timeline */
30 | .enhanced-media-thumbnails, /* Inline images */
31 | .content-header, /* Tweets column header */
32 | .promoted-tweet, /* Promoted tweets */
33 | .Footer, /* Site footer */
34 | .site-footer,
35 | .DashboardProfileCard, /* Profile card on home */
36 | .WhoToFollow, /* Who to follow module */
37 | .wtf-module {
38 | display: none !important;
39 | }
40 |
41 | /* Hide inline media */
42 | .cards-media-container,
43 | .card2 {
44 | display: none !important;
45 | }
46 |
47 | /* Show media when expanded or in detail view */
48 | .expanding-stream-item.open .cards-media-container,
49 | .permalink-tweet .cards-media-container,
50 | .expanding-stream-item.open .card2,
51 | .permalink-tweet .card2 {
52 | display: block !important;
53 | }
54 |
55 |
56 | /* Remove Borders */
57 | .stream-item,
58 | .tweet,
59 | .stream-loading,
60 | .stream-end,
61 | .new-tweets-bar,
62 | .module {
63 | border: none !important;
64 | }
65 |
66 | .stream-item-activity-me {
67 | border-bottom: none !important;
68 | }
69 |
70 | .user-similarities-list {
71 | border: 1px solid rgba(0,0,0,.1) !important;
72 | overflow: hidden !important;
73 | }
74 |
75 |
76 | /* Single Column Layout */
77 |
78 | .wrapper-settings .content-header {
79 | display: block !important;
80 | }
81 |
82 | .wrapper,
83 | .wrapper-narrow,
84 | .wrapper-permalink {
85 | background: none !important;
86 | width: 90% !important;
87 | max-width: 56em !important;
88 | }
89 |
90 | .dashboard,
91 | .content-main {
92 | float: none !important;
93 | width: 100% !important;
94 | }
95 |
96 | /* Subnavigation */
97 | .module ul li {
98 | display: inline-block !important;
99 | }
100 | .module ul li .Icon--caretRight {
101 | display: none !important;
102 | }
103 | .list-link {
104 | border: 0 !important;
105 | }
106 |
107 | /* White background */
108 | body,
109 | body.ProfilePage {
110 | background-image: none !important;
111 | background-color: #fff !important;
112 | }
113 |
114 |
115 | /* Compose Tweet Modal */
116 |
117 | .tweet-box {
118 | width: 95% !important;
119 | height: auto !important;
120 | min-height: 80px !important;
121 | padding: 8px 2.5% !important;
122 | }
123 |
124 | .tweet-form.has-preview.has-thumbnail .tweet-box {
125 | padding-bottom: 80px !important;
126 | }
127 |
128 | .tweet-form .thumbnail-container {
129 | width: auto !important;
130 | }
131 |
132 |
133 | /* Modals */
134 | .modal {
135 | width: 90% !important;
136 | max-width: 56em !important;
137 | left: 0 !important;
138 | right: 0 !important;
139 | margin: 0 auto !important;
140 | }
141 |
142 |
--------------------------------------------------------------------------------