Go to file
narcolepticinsomniac 793dc20722
linter and compact layout improvements (#749)
* linter and compact layout improvements

Closes #748

While investigating the best way to fix linter scrolling, when I double-checked the compact layout, an old bug I meant to fix a long time ago was immediately apparent. Basically, the linter adds/removes errors as you type, causing the editor to bounce up and down, making it practically unusable. 

This PR fixes scrolling, and also collapses options and the linter in the compact layout, but always shows the collapsed linter so you're aware of the error count without the content jumping. It also collapses options in the non-compact layout if the viewport is too short to accommodate them, factoring in the min-height of the linter. All automatic collapsing factors in whether a linter is active so they can adjust accordingly, and disables the setting of collapsed state prefs, since we're deciding the pref anyway, and this allows for re-expanding on resize based on the previous pref.

It's quite possible I failed to account for certain scenarios, so try to break it. Also think it's problematic for the linter to not always be visible if enabled, so I hooked up a 40px fixed header on scroll with just the linter in it for the compact layout.

A few other little details are included. I removed redundant line and column numbers spelled out at the end of lint messages to prevent horizontal overflow. I noticed that the expand/collapse prefs do not toggle correctly when clicking directly on the details-marker arrow. Simplest solution was covering them with the `h2` (we may wanna hook up the manager as well). Also, unrelated, but I switched to opacity to hide resizing sectioned editors, because `visibility: hidden;` breaks editor auto-focus.

If either of you guys wanna fix any bugs, or improve any code, feel free to just commit to this PR directly.

* linter and compact layout improvements

* linter and compact layout improvements

* No usercss scroll listener and delay header check

* Some code tweaks
2019-08-04 13:09:50 -04:00
_locales Update translations 2019-07-08 04:50:51 -05:00
.github Chore: include stylus version in the issue template (#549) 2018-11-08 07:35:40 -06:00
.tx Locales (#532) 2018-11-03 09:37:25 -05:00
background Fix: db initializing error, polyfill localStorage/sessionStorage (#616) 2019-06-20 15:35:41 -04:00
content Revert defer page script injection (#758) 2019-08-04 13:04:02 -04:00
edit linter and compact layout improvements (#749) 2019-08-04 13:09:50 -04:00
images/icon remove what-input, use own implementation, rebase on master 2017-12-13 03:27:10 +03:00
install-usercss Add: enable usercss updateURL (#661) 2019-02-13 19:09:18 -06:00
js linter and compact layout improvements (#749) 2019-08-04 13:09:50 -04:00
manage Improve height restriction for popup config dialog (#721) 2019-06-01 05:12:52 -04:00
msgbox Improve height restriction for popup config dialog (#721) 2019-06-01 05:12:52 -04:00
options Account for max-content bug in Chrome 49 2019-01-08 02:41:39 -05:00
popup Slightly wider menu button 2019-07-22 02:31:11 -04:00
sync Move dropbox vendors (#576) 2018-11-28 18:56:17 -06:00
tools Move dropbox vendors (#576) 2018-11-28 18:56:17 -06:00
vendor Update vendor libraries 2019-07-08 04:59:28 -05:00
vendor-overwrites Fix colorpicker (#745) 2019-07-14 20:16:53 -04:00
.editorconfig Don't enforce non-native end_of_line in editorconfig 2017-04-18 12:43:30 +03:00
.eslintignore refactor CSSLint 2018-01-07 12:31:23 +03:00
.eslintrc Refactor the entire storage system and the section editor (#518) 2018-11-07 14:09:29 +08:00
.gitattributes Locales (#532) 2018-11-03 09:37:25 -05:00
.gitignore Locales (#532) 2018-11-03 09:37:25 -05:00
edit.html linter and compact layout improvements (#749) 2019-08-04 13:09:50 -04:00
global.css simplified font CSS 2018-08-20 13:11:02 +03:00
install-usercss.html Refactor: rewrite style injector (#664) 2019-03-09 20:58:17 -06:00
LICENSE Adding external licenses (#424) 2018-07-09 16:39:31 +03:00
manage.html Refactor: rewrite style injector (#664) 2019-03-09 20:58:17 -06:00
manifest.json 1.5.4 2019-07-08 07:07:31 -05:00
options.html Refactor: rewrite style injector (#664) 2019-03-09 20:58:17 -06:00
package.json 1.5.4 2019-07-08 07:07:31 -05:00
popup.html menus as dialogs (#727) 2019-06-20 15:37:40 -04:00
README.md no need to open issues that notify about transifex 2018-08-16 13:59:46 +03:00

Stylus is a fork of Stylish for Chrome, also compatible with Firefox as a WebExtension

Highlights

  • In addition to the userstyles.org site, styles with customizable parameters can also be installed from .user.css or .user.styl URLs (see Usercss format wiki).
  • Site styles can be discovered and previewed in the popup using inline search with screenshot thumbnails.
  • A backup feature which is compatible with other userstyles managers.
  • Configurable automatic update function for installed styles.
  • Customizable UI, optional layouts, and tweaks.
  • Two different optional code validators with user-configurable rules: CSSLint and Stylelint.
    • Both validators use Web Worker API to run in a separate background thread inside the editor tab without blocking your interaction with the code.
    • CSSLint is heavily modified compared to the effectively frozen original one and supports various CSS3 features as well as CSS4 Color and CSS Grid syntax.

Releases

  1. Chrome Web Store (or beta)
  2. Firefox add-ons
  3. Opera add-ons (see wiki for more recent version)

Screenshots

Style manager Style editor Popup config for usercss Popup inline search Style manager config for usercss Options

Help

Contributing

The source is hosted on GitHub and pull requests are welcome.

You can help us translate the extension on Transifex.

See our contributing page for more details.

License

Inherited code from the original Stylish:
Copyright © 2005-2014 Jason Barnabe

Current Stylus:
Copyright © 2017-2018 Stylus Team

GNU GPLv3
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

External libraries

The licenses of external libraries used in this project or modified versions of external libraries can be found in their respective directory.