Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ASCII output support #568

Open
rzhw opened this issue Jan 11, 2019 · 49 comments
Open

Add ASCII output support #568

rzhw opened this issue Jan 11, 2019 · 49 comments

Comments

@rzhw
Copy link

rzhw commented Jan 11, 2019

I've been working on a product using libsass/sassc and have migrated it to Dart Sass. Presently, this product doesn't support UTF-8 characters in stylesheets.

It looks like Dart Sass only supports outputting as UTF-8, with dart-lang/sdk#11744 being the blocker given in the README for why there's no support for more encodings (UTF-16, etc). Dart does however appear to have an AsciiEncoder.

For the time being, we've added an extra step to CSS escape non-ASCII characters in generated stylesheets. (On a related note, we also remove the @charset 'UTF-8'; atrule, both because it would be technically incorrect for an ASCII-encoded stylesheet, and because of #567.)

This isn't trivial because of sourcemaps, so we're doing this step with a PostCSS plugin.

Would adding ASCII-encoded output support be in scope of Dart Sass? I'd imagine when Dart adds other encoders, having this ready would let other encodings be sibling output options alongside UTF-8 and ASCII.

@nex3
Copy link
Contributor

nex3 commented Jan 17, 2019

This is something I could see adding as a command-line flag (--ascii-only or something like that) to serialize Unicode characters as ASCII escapes.

@bit-wise
Copy link

@nex3 will this command-line flag be ready when Ruby sass is deprecated?

@nex3
Copy link
Contributor

nex3 commented Feb 18, 2019

Ruby Sass has been deprecated for almost a year now. And no, there's no plan to tie this issue to its release cycle. It's marked as "help wanted", which means it's not a priority for the Sass team, but if an external user wanted to contribute a fix we'd help them land it.

@jpuncle

This comment has been minimized.

@BuptStEve
Copy link

// @source - [@Stephn-R](https://github.com/sass/sass/issues/1395#issuecomment-57483844)
// @description converts 1 or more characters into a unicode
// @markup {scss}
// unicode("e655"); // "\e655"
@function unicode($str){
    @return unquote("\"")+unquote(str-insert($str, "\\", 1))+unquote("\"")
}

@clshortfuse
Copy link

clshortfuse commented Jul 28, 2020

So, I'm trying to get a zero-width unicode character to work with SASS. It won't appear without a hex editor because of SASS reinterpreting that. On normal CSS, it's:

div::before {
  content: "\200B";
}

But SASS will rewrite it as:

div::before {
  content: "";
}

It's a little frustrating trying to debug with an invisible character since SASS wants to rewrite it. A flag would unfortunately be global to everything when it's somewhat of an edge case where you want raw/literal characters to be outputted as a string. I just have these few instances where it's better to not convert to Unicode. I can imagine there's a lot of other characters, both printable and non-printable, that would greatly benefit from not being rewritten as Unicode, such as:

@watershed
Copy link

watershed commented Jan 29, 2021

Finding this thread today because of an issue similar to @clshortfuse above.

I learn that Dart Sass is converting my authored:

content: '\00A0/\00A0';

to:

content: ' / ';

…where the spaces written do seem to be no breaking spaces, but they are prone to rendering in the browser as:

A

No such problem with Libsass, but then Libsass fails at some other stuff.

@watershed
Copy link

Here’s another example that erratically fails due to to the following authored Sass:

content: '\0231F';
transform: rotate(45deg);

…ending up as:

content:"⌟";transform:rotate(45deg);

what-you-can-do-generated-content-fail

See also this Twitter thread.

@nex3
Copy link
Contributor

nex3 commented Jan 29, 2021

@watershed As mentioned earlier in this thread, Sass emits a @charset declaration or a BOM whenever it emits non-ASCII output, which will force browsers to interpret the stylesheet as UTF-8 even if it's served with non-UTF-8 headers. If that's not working, chances are you're doing some sort of post-processing that's incorrectly stripping that extra information.

@cbush06
Copy link

cbush06 commented Mar 1, 2021

@nex3 -- I have not touched any settings of Angular CLI that (to my knowledge) would affect the inclusion or omission of @charset. In fact, I haven't configured any of the compilation process (it's using defaults). However, I'm encountering this issue.

@nex3
Copy link
Contributor

nex3 commented Mar 4, 2021

@cbush06 Are you seeing a case where your CSS is being served with @charset (or a UTF-8 BOM) and is still being interpreted as the wrong character set? Otherwise, I'm not sure how Sass can address your issue.

@cbush06
Copy link

cbush06 commented Mar 4, 2021

@nex3 -- After reading your posts earlier, I went and checked. What I discovered is the CSS generated for each angular component do have the @charset. Other SCSS files (e.g. from my assets folder) do not have it included.

@jerryephicacy
Copy link

jerryephicacy commented Aug 9, 2022

@nex3 ... randomly it fails in the browser.

But I have made it work now.

Just have to modify the fa-content function and remove the slash ( \ ) symbol from the icon variables.

@nex3
Copy link
Contributor

nex3 commented Aug 9, 2022

To reiterate the above, if you can provide a reproduction where this fails in the browser even with a @charset or UTF-8 BOM, we will reconsider our default output.

@nmoresco
Copy link

I think the assumption that all CSS output by dart-sass will be loaded directly by a browser is not a given. For example, I was running into this problem because my compiled CSS files are loaded by GWT, which doesn't know about the @charset annotation. Thus, you get this while compiling and it swallows the css block.

[WARN] Line 13 column 12: encountered """. Was expecting one of: "}" "+" "-" "," ";" "/" <STRING> <IDENT> <NUMBER> <URL> <PERCENTAGE> <PT> <MM> <CM> <PC> <IN> <PX> <EMS> <EXS> <DEG> <RAD> <GRAD> <MS> <SECOND> <HZ> <KHZ> <DIMEN> <HASH> <IMPORTANT_SYM> <UNICODERANGE> <FUNCTION>

I think the newer versions of GWT that use GSS might not have this problem, but I can't move to that easily. Regardless of my specific situation, my point is that Sass output is used in many kinds of toolchains that aren't the browser.

@nex3
Copy link
Contributor

nex3 commented Aug 11, 2022

Sass targets the CSS specification. We'll make exceptions for browser behavior that's contrary to the spec only because browsers are the overwhelming majority of CSS consumers. Any other tool should follow the specification when consuming CSS, and if it doesn't it's pretty clearly a bug in that tool and not in Sass.

@jerryephicacy
Copy link

@nex3 ,

  1. When running the application in dev mode using webpack, we have charset utf8 present at the top of the compiled application.css file. But, it is removed in prod mode and the charset utf8 is not there.
  2. But in both dev mode and prod mode, the meta charset utf8 is present in the head tag.
  3. I tried bumping up css-loader, sass-loader, postcss-loader, etc., and still not successful.

Hence, when I followed what @jpcamara mentioned in the comment above, I have modified the fa-content and removed the slash ( \ ) symbol on the variables and the resulting output in the css is fa-font-awesome-flag:before{content:"\f425"} which renders correctly everytime in the browser.

@kdagnan
Copy link

kdagnan commented Aug 15, 2022

Would like to add to this discussion:
We are currently moving to dart-sass from sass (node). Our build step results in the correct unicode character. IE:

icon-flag: before {
   content: "\E95E"
}

result of compilation:
icon-flag:before{content:""}
(This character: https://utf8-icons.com/utf-8-character-59742)

However, randomly the browser will not accept the encoding and will display the strange characters. I've added @charset "utf-8" to my SCSS, and to my index.html. It seems to happen maybe 1 in 50 reloads. The escaping function mentioned above seems to fix it but it seems hacky.

@nex3
Copy link
Contributor

nex3 commented Aug 15, 2022

@jerryephicacy

  1. When running the application in dev mode using webpack, we have charset utf8 present at the top of the compiled application.css file. But, it is removed in prod mode and the charset utf8 is not there.

Emphasis mine. Something in your stack is removing the @charset declaration, which seems like the actual bug here. You can't just delete parts of a file and expect it to work the same way.

@kdagnan I'll ask you the same thing I've asked everyone else in this thread: provide a working reproduction of this bug, including the specific browser version in which you're seeing the error.

@Yegorich555
Copy link

For webpack it can be fixed with css-unicode-loader

@jerryephicacy
Copy link

@Yegorich555 , thanks for the suggestion.
Are you sure that we can go with a 2 year old package? Do you have any information on the maintenance and any top projects are using this?

If not, any alternative?

@Yegorich555
Copy link

@jerryephicacy yes, I'm.
It works fine with webpack 4 and webpack 5. I've been using it for both of my production projects. Despite looks like loader isn't touched during 2 years it works without bugs in my case ;)

@jerryephicacy
Copy link

@Yegorich555 , thanks so much for the idea. It works well!

@nex3 , I have solved this with the css-unicode-loader package using webpack.

@robinp
Copy link

robinp commented Sep 16, 2022

Just to increase crosslink density... I suspect based on searching this has to do with Chrome(Chromium) caching and not having an explicit charset or BOM. Do anyone see this issue on other browsers?

References:

In all cases, the suggestion seems to be to add the explicit encoding back, either with charset directive, response header or BOM.

@nsunga
Copy link

nsunga commented May 11, 2023

This is something I could see adding as a command-line flag (--ascii-only or something like that) to serialize Unicode characters as ASCII escapes.

Hello @nex3 !

sorry for bringing up such an old thread.

i just wanted to confirm: the --ascii-only flag isnt supported yet right?

and if not, dart-sass has no intention in doing this?

@nex3
Copy link
Contributor

nex3 commented May 16, 2023

This issue is open, which indicates that it is not supported but we would like to do it.

@nlozovan
Copy link

I can confirm that this is still happening, and icons will intermittently render as "" instead of the normal format.

  • in dev mode we have ASCII
  • in prod builds we have unicode
  • very rarely the render is broken, browser Chrome Version 116.0.5845.187 (Official Build) (arm64) but this is reproducible on other versions as well. It's rare but still a bug to be addressed.
  • just reproduced it, and it seems the TTF file loaded from the browser cache, so that might be related to Chromium as well.
    I still think we should have the chance to ignore ASCII conversion when needed, especially since in our case it's a CSS file generated in icomoon and you can't wrap declarations in SCSS files and such..

@nex3
Copy link
Contributor

nex3 commented Sep 21, 2023

@nlozovan Does the CSS file you're serving to Chrome retain the @charset rule and/or the UTF-8 byte-order-mark, or have those been stripped out by some other processing?

@nlozovan
Copy link

@nlozovan Does the CSS file you're serving to Chrome retain the @charset rule and/or the UTF-8 byte-order-mark, or have those been stripped out by some other processing?

Yes, it's stripped out for some reason. I ended up forcefully adding a charset declaration after the build. For now, I can't reproduce the error anymore, fonts are rendered correctly. I have a theory that, while Chrome is loading the CSS file from the cache, it will (sometimes) apply a wrong encoding. Yeah, it seems the planets aligned here in a wrong way somehow ;)

@nex3
Copy link
Contributor

nex3 commented Sep 21, 2023

If the @charset/BOM was stripped out, that's almost certainly the culprit. CSS requires those to correctly identify the encoding under all circumstances.

aarongable pushed a commit to chromium/chromium that referenced this issue Sep 22, 2023
This is to allow testing of the desired behavior, and it's a possible
cause of an issue being discussed in Sass:
sass/dart-sass#568

There are two call sites for CSSParserContext::Charset(), one for the
regular parsing path, and one for parsing registered property values.
Rather than touching both, just throw away the charset override when the
feature is enabled.

Bug: 1485525

Change-Id: I3da69b4156d6a84bcc8e0517c954a79b522a9ec9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4846986
Commit-Queue: Philip Jägenstedt <[email protected]>
Reviewed-by: Rune Lillesveen <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1200109}
@foolip
Copy link

foolip commented Sep 26, 2023

I have landed a change in Chrome to make URL parsing in CSS spec compliant, by ignoring the encoding/charset of the stylesheet. This change is available in Chrome Canary 119.0.6025.0 and later and can be enabled by passing --enable-features=CSSParserIgnoreCharsetForURLs as a command line argument to Chrome.

@nlozovan would you be able to test with Chrome Canary with this command line argument to see if it has an effect on the problem you're experiencing?

@nlozovan
Copy link

@foolip here are some tests that I've made. Scenario: a CSS file will have @font-face declarations with some custom fonts, and the icon content is in Unicode.

  • Without a charset declaration:

    • Calling Chrome Canary as an app - can't reproduce the error anymore;
    • Using Terminal command /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --enable-features=CSSParserIgnoreCharsetForURLs will reproduce the error;
    • Using Terminal command without the flag /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary will reproduce the error;
  • With the charset declaration at the top:

    • all 3 scenarios work fine, I cannot reproduce the problem anymore;

I've used Canary Version 119.0.6030.0 (Official Build) canary (arm64). Also, I cannot explain why Chrome Canary which was opened as an app works differently than the terminal Chromium.
Hope this is helpful and yes, seems Canary has an update on this.

@foolip
Copy link

foolip commented Sep 26, 2023

@nlozovan thank you for testing! It sounds like you get the error when opening Chrome from the command line both with and without --enable-features=CSSParserIgnoreCharsetForURLs, right? That would suggest it has no bearing on the problem you're seeing, but then I don't understand why the problem doesn't reproduce when opening Chrome Canary as an app. Are you sure that Chrome Canary was fully closed between each test, so that it didn't open a new tab in an already open browser? I ask only because that's the only thing that comes to mind as an explanation for what you're seeing.

@nlozovan
Copy link

@foolip Yes, I was making sure the session is over, the cache is enabled in both cases. Tested now one more time and I have the same results. The terminal is not throwing any errors, it's opening a brand-new session. That is really interesting.
How I reproduce the error quite quickly is by opening and closing the Inspector Tools via the shortcut, multiple times, on page load. I do this 2-3 times and I can see the font icon error. Not on the Canary app though.

@foolip
Copy link

foolip commented Oct 10, 2023

@nlozovan thanks for double check that. I also don't understand why you'd see a difference between starting Chrome Canary by clicking an icon and from the command line.

To help me understand if the change I made behind a flag affects your case, can you share the relevant part of the stylesheet? I'm looking for non-ASCII characteres in URLs, which is what my change should affect.

Friendly-users added a commit to Friendly-users/dart-sass that referenced this issue Jun 28, 2024
-----
It is inappropriate to include political and offensive content in public code repositories.

Public code repositories should be neutral spaces for collaboration and community, free from personal or political views that could alienate or discriminate against others. Political content, especially that which targets or disparages minority groups, can be harmful and divisive. It can make people feel unwelcome and unsafe, and it can create a hostile work environment.

Please refrain from adding such content to public code repositories.
---

sass#1 sass#2 sass#3 sass#4 sass#5 sass#6 sass#7 sass#8 sass#9 sass#10 sass#11 sass#12 sass#13 sass#14 sass#15 sass#16 sass#17 sass#18 sass#19 sass#20 sass#21 sass#22 sass#23 sass#24 sass#25 sass#26 sass#27 sass#28 sass#29 sass#30 sass#31 sass#32 sass#33 sass#34 sass#35 sass#36 sass#37 sass#38 sass#39 sass#40 sass#41 sass#42 sass#43 sass#44 sass#45 sass#46 sass#47 sass#48 sass#49 sass#50 sass#51 sass#52 sass#53 sass#54 sass#55 sass#56 sass#57 sass#58 sass#59 sass#60 sass#61 sass#62 sass#63 sass#64 sass#65 sass#66 sass#67 sass#68 sass#69 sass#70 sass#71 sass#72 sass#73 sass#74 sass#75 sass#76 sass#77 sass#78 sass#79 sass#80 sass#81 sass#82 sass#83 sass#84 sass#85 sass#86 sass#87 sass#88 sass#89 sass#90 sass#91 sass#92 sass#93 sass#94 sass#95 sass#96 sass#97 sass#98 sass#99 sass#100 sass#101 sass#102 sass#103 sass#104 sass#105 sass#106 sass#107 sass#108 sass#109 sass#110 sass#111 sass#112 sass#113 sass#114 sass#115 sass#116 sass#117 sass#118 sass#119 sass#120 sass#121 sass#122 sass#123 sass#124 sass#125 sass#126 sass#127 sass#128 sass#129 sass#130 sass#131 sass#132 sass#133 sass#134 sass#135 sass#136 sass#137 sass#138 sass#139 sass#140 sass#141 sass#142 sass#143 sass#144 sass#145 sass#146 sass#147 sass#148 sass#149 sass#150 sass#151 sass#152 sass#153 sass#154 sass#155 sass#156 sass#157 sass#158 sass#159 sass#160 sass#161 sass#162 sass#163 sass#164 sass#165 sass#166 sass#167 sass#168 sass#169 sass#170 sass#171 sass#172 sass#173 sass#174 sass#175 sass#176 sass#177 sass#178 sass#179 sass#180 sass#181 sass#182 sass#183 sass#184 sass#185 sass#186 sass#187 sass#188 sass#189 sass#190 sass#191 sass#192 sass#193 sass#194 sass#195 sass#196 sass#197 sass#198 sass#199 sass#200 sass#201 sass#202 sass#203 sass#204 sass#205 sass#206 sass#207 sass#208 sass#209 sass#210 sass#211 sass#212 sass#213 sass#214 sass#215 sass#216 sass#217 sass#218 sass#219 sass#220 sass#221 sass#222 sass#223 sass#224 sass#225 sass#226 sass#227 sass#228 sass#229 sass#230 sass#231 sass#232 sass#233 sass#234 sass#235 sass#236 sass#237 sass#238 sass#239 sass#240 sass#241 sass#242 sass#243 sass#244 sass#245 sass#246 sass#247 sass#248 sass#249 sass#250 sass#251 sass#252 sass#253 sass#254 sass#255 sass#256 sass#257 sass#258 sass#259 sass#260 sass#261 sass#262 sass#263 sass#264 sass#265 sass#266 sass#267 sass#268 sass#269 sass#270 sass#271 sass#272 sass#273 sass#274 sass#275 sass#276 sass#277 sass#278 sass#279 sass#280 sass#281 sass#282 sass#283 sass#284 sass#285 sass#286 sass#287 sass#288 sass#289 sass#290 sass#291 sass#292 sass#293 sass#294 sass#295 sass#296 sass#297 sass#298 sass#299 sass#300 sass#301 sass#302 sass#303 sass#304 sass#305 sass#306 sass#307 sass#308 sass#309 sass#310 sass#311 sass#312 sass#313 sass#314 sass#315 sass#316 sass#317 sass#318 sass#319 sass#320 sass#321 sass#322 sass#323 sass#324 sass#325 sass#326 sass#327 sass#328 sass#329 sass#330 sass#331 sass#332 sass#333 sass#334 sass#335 sass#336 sass#337 sass#338 sass#339 sass#340 sass#341 sass#342 sass#343 sass#344 sass#345 sass#346 sass#347 sass#348 sass#349 sass#350 sass#351 sass#352 sass#353 sass#354 sass#355 sass#356 sass#357 sass#358 sass#359 sass#360 sass#361 sass#362 sass#363 sass#364 sass#365 sass#366 sass#367 sass#368 sass#369 sass#370 sass#371 sass#372 sass#373 sass#374 sass#375 sass#376 sass#377 sass#378 sass#379 sass#380 sass#381 sass#382 sass#383 sass#384 sass#385 sass#386 sass#387 sass#388 sass#389 sass#390 sass#391 sass#392 sass#393 sass#394 sass#395 sass#396 sass#397 sass#398 sass#399 sass#400 sass#401 sass#402 sass#403 sass#404 sass#405 sass#406 sass#407 sass#408 sass#409 sass#410 sass#411 sass#412 sass#413 sass#414 sass#415 sass#416 sass#417 sass#418 sass#419 sass#420 sass#421 sass#422 sass#423 sass#424 sass#425 sass#426 sass#427 sass#428 sass#429 sass#430 sass#431 sass#432 sass#433 sass#434 sass#435 sass#436 sass#437 sass#438 sass#439 sass#440 sass#441 sass#442 sass#443 sass#444 sass#445 sass#446 sass#447 sass#448 sass#449 sass#450 sass#451 sass#452 sass#453 sass#454 sass#455 sass#456 sass#457 sass#458 sass#459 sass#460 sass#461 sass#462 sass#463 sass#464 sass#465 sass#466 sass#467 sass#468 sass#469 sass#470 sass#471 sass#472 sass#473 sass#474 sass#475 sass#476 sass#477 sass#478 sass#479 sass#480 sass#481 sass#482 sass#483 sass#484 sass#485 sass#486 sass#487 sass#488 sass#489 sass#490 sass#491 sass#492 sass#493 sass#494 sass#495 sass#496 sass#497 sass#498 sass#499 sass#500 sass#501 sass#502 sass#503 sass#504 sass#505 sass#506 sass#507 sass#508 sass#509 sass#510 sass#511 sass#512 sass#513 sass#514 sass#515 sass#516 sass#517 sass#518 sass#519 sass#520 sass#521 sass#522 sass#523 sass#524 sass#525 sass#526 sass#527 sass#528 sass#529 sass#530 sass#531 sass#532 #533 sass#534 sass#535 #536 sass#537 sass#538 sass#539 sass#540 sass#541 sass#542 sass#543 sass#544 sass#545 sass#546 sass#547 sass#548 sass#549 sass#550 sass#551 sass#552 sass#553 sass#554 sass#555 sass#556 #557 sass#558 sass#559 #560 sass#561 sass#562 sass#563 sass#564 #565 sass#566 sass#567 sass#568 sass#569 sass#570 sass#571 sass#572 sass#573 sass#574 sass#575 sass#576 sass#577 sass#578 sass#579 sass#580 sass#581 sass#582 sass#583 sass#584 sass#585 sass#586 sass#587 sass#588 sass#589 sass#590 sass#591 sass#592 sass#593 sass#594 sass#595 sass#596 sass#597 sass#598 sass#599 sass#600 sass#601 sass#602 sass#603 sass#604 sass#605 sass#606 sass#607 sass#608 sass#609 sass#610 sass#611 sass#612 sass#613 sass#614 sass#615 sass#616 sass#617 sass#618 sass#619 sass#620 sass#621 sass#622 sass#623 sass#624 sass#625 sass#626 sass#627 sass#628 sass#629 sass#630 sass#631 sass#632 sass#633 sass#634 sass#635 sass#636 sass#637 sass#638 sass#639 sass#640 sass#641 sass#642 sass#643 sass#644 sass#645 sass#646 sass#647 sass#648 sass#649 sass#650 sass#651 sass#652 sass#653 sass#654 sass#655 sass#656 sass#657 sass#658 sass#659 sass#660 sass#661 sass#662 sass#663 sass#664 sass#665 sass#666 sass#667 sass#668 sass#669 sass#670 sass#671 sass#672 sass#673 sass#674 sass#675 sass#676 sass#677 sass#678 sass#679 sass#680 sass#681 sass#682 sass#683 sass#684 sass#685 sass#686 sass#687 sass#688 sass#689 sass#690 sass#691 sass#692 sass#693 sass#694 sass#695 sass#696 sass#697 sass#698 sass#699 sass#700 sass#701 sass#702 sass#703 sass#704 sass#705 sass#706 sass#707 sass#708 sass#709 sass#710 sass#711 sass#712 sass#713 sass#714 sass#715 sass#716 sass#717 sass#718 sass#719 sass#720 sass#721 sass#722 sass#723 sass#724 sass#725 sass#726 sass#727 sass#728 sass#729 sass#730 sass#731 sass#732 sass#733 sass#734 sass#735 sass#736 sass#737 sass#738 sass#739 sass#740 sass#741 sass#742 sass#743 sass#744 sass#745 sass#746 sass#747 sass#748 sass#749 sass#750 sass#751 sass#752 sass#753 sass#754 sass#755 sass#756 sass#757 sass#758 sass#759 sass#760 sass#761 sass#762 sass#763 sass#764 sass#765 sass#766 sass#767 sass#768 sass#769 sass#770 sass#771 sass#772 sass#773 sass#774 sass#775 sass#776 sass#777 sass#778 sass#779 sass#780 sass#781 sass#782 sass#783 sass#784 sass#785 sass#786 sass#787 sass#788 sass#789 sass#790 sass#791 sass#792 sass#793 sass#794 sass#795 #796 sass#797 #798 sass#799 sass#800 sass#801 sass#802 sass#803 sass#804 sass#805 sass#806 sass#807 sass#808 sass#809 sass#810 sass#811 sass#812 sass#813 sass#814 sass#815 sass#816 sass#817 sass#818 sass#819 sass#820 sass#821 sass#822 #823 sass#824 sass#825 #826 sass#827 sass#828 sass#829 sass#830 sass#831 sass#832 sass#833 sass#834 sass#835 sass#836 sass#837 sass#838 sass#839 sass#840 sass#841 sass#842 sass#843 sass#844 sass#845 sass#846 sass#847 sass#848 sass#849 sass#850 sass#851 sass#852 sass#853 sass#854 sass#855 sass#856 sass#857 sass#858 sass#859 sass#860 sass#861 sass#862 sass#863 sass#864 sass#865 sass#866 sass#867 sass#868 sass#869 sass#870 sass#871 sass#872 sass#873 sass#874 sass#875 #876 sass#877 sass#878 sass#879 sass#880 sass#881 sass#882 sass#883 sass#884 sass#885 sass#886 sass#887 sass#888 sass#889 sass#890 sass#891 sass#892 #893 sass#894 sass#895 sass#896 sass#897 sass#898 sass#899 sass#900 sass#901 sass#902 sass#903 sass#904 sass#905 sass#906 sass#907 sass#908 sass#909 sass#910 sass#911 sass#912 sass#913 sass#914 sass#915 sass#916 sass#917 sass#918 sass#919 sass#920 sass#921 sass#922 sass#923 sass#924 sass#925 sass#926 sass#927 sass#928 sass#929 sass#930 sass#931 sass#932 sass#933 sass#934 sass#935 sass#936 sass#937 #938 sass#939 sass#940 sass#941 sass#942 sass#943 sass#944 sass#945 sass#946 sass#947 sass#948 sass#949 #950 sass#951 sass#952 sass#953 sass#954 sass#955 sass#956 sass#957 sass#958 sass#959 sass#960 sass#961 sass#962 sass#963 sass#964 sass#965 sass#966 sass#967 sass#968 sass#969 sass#970 sass#971 sass#972 sass#973 sass#974 sass#975 sass#976 sass#977 sass#978 sass#979 sass#980 sass#981 sass#982 sass#983 sass#984 sass#985 sass#986 sass#987 sass#988 sass#989 sass#990 sass#991 sass#992 #993 sass#994 sass#995 sass#996 sass#997 sass#998 sass#999
Friendly-users added a commit to Friendly-users/dart-sass that referenced this issue Jul 2, 2024
-----
It is inappropriate to include political and offensive content in public code repositories.

Public code repositories should be neutral spaces for collaboration and community, free from personal or political views that could alienate or discriminate against others. Political content, especially that which targets or disparages minority groups, can be harmful and divisive. It can make people feel unwelcome and unsafe, and it can create a hostile work environment.

Please refrain from adding such content to public code repositories.
---
sass#1 sass#2 sass#3 sass#4 sass#5 sass#6 sass#7 sass#8 sass#9 sass#10 sass#11 sass#12 sass#13 sass#14 sass#15 sass#16 sass#17 sass#18 sass#19 sass#20 sass#21 sass#22 sass#23 sass#24 sass#25 sass#26 sass#27 sass#28 sass#29 sass#30 sass#31 sass#32 sass#33 sass#34 sass#35 sass#36 sass#37 sass#38 sass#39 sass#40 sass#41 sass#42 sass#43 sass#44 sass#45 sass#46 sass#47 sass#48 sass#49 sass#50 sass#51 sass#52 sass#53 sass#54 sass#55 sass#56 sass#57 sass#58 sass#59 sass#60 sass#61 sass#62 sass#63 sass#64 sass#65 sass#66 sass#67 sass#68 sass#69 sass#70 sass#71 sass#72 sass#73 sass#74 sass#75 sass#76 sass#77 sass#78 sass#79 sass#80 sass#81 sass#82 sass#83 sass#84 sass#85 sass#86 sass#87 sass#88 sass#89 sass#90 sass#91 sass#92 sass#93 sass#94 sass#95 sass#96 sass#97 sass#98 sass#99 sass#100 sass#101 sass#102 sass#103 sass#104 sass#105 sass#106 sass#107 sass#108 sass#109 sass#110 sass#111 sass#112 sass#113 sass#114 sass#115 sass#116 sass#117 sass#118 sass#119 sass#120 sass#121 sass#122 sass#123 sass#124 sass#125 sass#126 sass#127 sass#128 sass#129 sass#130 sass#131 sass#132 sass#133 sass#134 sass#135 sass#136 sass#137 sass#138 sass#139 sass#140 sass#141 sass#142 sass#143 sass#144 sass#145 sass#146 sass#147 sass#148 sass#149 sass#150 sass#151 sass#152 sass#153 sass#154 sass#155 sass#156 sass#157 sass#158 sass#159 sass#160 sass#161 sass#162 sass#163 sass#164 sass#165 sass#166 sass#167 sass#168 sass#169 sass#170 sass#171 sass#172 sass#173 sass#174 sass#175 sass#176 sass#177 sass#178 sass#179 sass#180 sass#181 sass#182 sass#183 sass#184 sass#185 sass#186 sass#187 sass#188 sass#189 sass#190 sass#191 sass#192 sass#193 sass#194 sass#195 sass#196 sass#197 sass#198 sass#199 sass#200 sass#201 sass#202 sass#203 sass#204 sass#205 sass#206 sass#207 sass#208 sass#209 sass#210 sass#211 sass#212 sass#213 sass#214 sass#215 sass#216 sass#217 sass#218 sass#219 sass#220 sass#221 sass#222 sass#223 sass#224 sass#225 sass#226 sass#227 sass#228 sass#229 sass#230 sass#231 sass#232 sass#233 sass#234 sass#235 sass#236 sass#237 sass#238 sass#239 sass#240 sass#241 sass#242 sass#243 sass#244 sass#245 sass#246 sass#247 sass#248 sass#249 sass#250 sass#251 sass#252 sass#253 sass#254 sass#255 sass#256 sass#257 sass#258 sass#259 sass#260 sass#261 sass#262 sass#263 sass#264 sass#265 sass#266 sass#267 sass#268 sass#269 sass#270 sass#271 sass#272 sass#273 sass#274 sass#275 sass#276 sass#277 sass#278 sass#279 sass#280 sass#281 sass#282 sass#283 sass#284 sass#285 sass#286 sass#287 sass#288 sass#289 sass#290 sass#291 sass#292 sass#293 sass#294 sass#295 sass#296 sass#297 sass#298 sass#299 sass#300 sass#301 sass#302 sass#303 sass#304 sass#305 sass#306 sass#307 sass#308 sass#309 sass#310 sass#311 sass#312 sass#313 sass#314 sass#315 sass#316 sass#317 sass#318 sass#319 sass#320 sass#321 sass#322 sass#323 sass#324 sass#325 sass#326 sass#327 sass#328 sass#329 sass#330 sass#331 sass#332 sass#333 sass#334 sass#335 sass#336 sass#337 sass#338 sass#339 sass#340 sass#341 sass#342 sass#343 sass#344 sass#345 sass#346 sass#347 sass#348 sass#349 sass#350 sass#351 sass#352 sass#353 sass#354 sass#355 sass#356 sass#357 sass#358 sass#359 sass#360 sass#361 sass#362 sass#363 sass#364 sass#365 sass#366 sass#367 sass#368 sass#369 sass#370 sass#371 sass#372 sass#373 sass#374 sass#375 sass#376 sass#377 sass#378 sass#379 sass#380 sass#381 sass#382 sass#383 sass#384 sass#385 sass#386 sass#387 sass#388 sass#389 sass#390 sass#391 sass#392 sass#393 sass#394 sass#395 sass#396 sass#397 sass#398 sass#399 sass#400 sass#401 sass#402 sass#403 sass#404 sass#405 sass#406 sass#407 sass#408 sass#409 sass#410 sass#411 sass#412 sass#413 sass#414 sass#415 sass#416 sass#417 sass#418 sass#419 sass#420 sass#421 sass#422 sass#423 sass#424 sass#425 sass#426 sass#427 sass#428 sass#429 sass#430 sass#431 sass#432 sass#433 sass#434 sass#435 sass#436 sass#437 sass#438 sass#439 sass#440 sass#441 sass#442 sass#443 sass#444 sass#445 sass#446 sass#447 sass#448 sass#449 sass#450 sass#451 sass#452 sass#453 sass#454 sass#455 sass#456 sass#457 sass#458 sass#459 sass#460 sass#461 sass#462 sass#463 sass#464 sass#465 sass#466 sass#467 sass#468 sass#469 sass#470 sass#471 sass#472 sass#473 sass#474 sass#475 sass#476 sass#477 sass#478 sass#479 sass#480 sass#481 sass#482 sass#483 sass#484 sass#485 sass#486 sass#487 sass#488 sass#489 sass#490 sass#491 sass#492 sass#493 sass#494 sass#495 sass#496 sass#497 sass#498 sass#499 sass#500 sass#501 sass#502 sass#503 sass#504 sass#505 sass#506 sass#507 sass#508 sass#509 sass#510 sass#511 sass#512 sass#513 sass#514 sass#515 sass#516 sass#517 sass#518 sass#519 sass#520 sass#521 sass#522 sass#523 sass#524 sass#525 sass#526 sass#527 sass#528 sass#529 sass#530 sass#531 sass#532 #533 sass#534 sass#535 #536 sass#537 sass#538 sass#539 sass#540 sass#541 sass#542 sass#543 sass#544 sass#545 sass#546 sass#547 sass#548 sass#549 sass#550 sass#551 sass#552 sass#553 sass#554 sass#555 sass#556 #557 sass#558 sass#559 #560 sass#561 sass#562 sass#563 sass#564 #565 sass#566 sass#567 sass#568 sass#569 sass#570 sass#571 sass#572 sass#573 sass#574 sass#575 sass#576 sass#577 sass#578 sass#579 sass#580 sass#581 sass#582 sass#583 sass#584 sass#585 sass#586 sass#587 sass#588 sass#589 sass#590 sass#591 sass#592 sass#593 sass#594 sass#595 sass#596 sass#597 sass#598 sass#599 sass#600 sass#601 sass#602 sass#603 sass#604 sass#605 sass#606 sass#607 sass#608 sass#609 sass#610 sass#611 sass#612 sass#613 sass#614 sass#615 sass#616 sass#617 sass#618 sass#619 sass#620 sass#621 sass#622 sass#623 sass#624 sass#625 sass#626 sass#627 sass#628 sass#629 sass#630 sass#631 sass#632 sass#633 sass#634 sass#635 sass#636 sass#637 sass#638 sass#639 sass#640 sass#641 sass#642 sass#643 sass#644 sass#645 sass#646 sass#647 sass#648 sass#649 sass#650 sass#651 sass#652 sass#653 sass#654 sass#655 sass#656 sass#657 sass#658 sass#659 sass#660 sass#661 sass#662 sass#663 sass#664 sass#665 sass#666 sass#667 sass#668 sass#669 sass#670 sass#671 sass#672 sass#673 sass#674 sass#675 sass#676 sass#677 sass#678 sass#679 sass#680 sass#681 sass#682 sass#683 sass#684 sass#685 sass#686 sass#687 sass#688 sass#689 sass#690 sass#691 sass#692 sass#693 sass#694 sass#695 sass#696 sass#697 sass#698 sass#699 sass#700 sass#701 sass#702 sass#703 sass#704 sass#705 sass#706 sass#707 sass#708 sass#709 sass#710 sass#711 sass#712 sass#713 sass#714 sass#715 sass#716 sass#717 sass#718 sass#719 sass#720 sass#721 sass#722 sass#723 sass#724 sass#725 sass#726 sass#727 sass#728 sass#729 sass#730 sass#731 sass#732 sass#733 sass#734 sass#735 sass#736 sass#737 sass#738 sass#739 sass#740 sass#741 sass#742 sass#743 sass#744 sass#745 sass#746 sass#747 sass#748 sass#749 sass#750 sass#751 sass#752 sass#753 sass#754 sass#755 sass#756 sass#757 sass#758 sass#759 sass#760 sass#761 sass#762 sass#763 sass#764 sass#765 sass#766 sass#767 sass#768 sass#769 sass#770 sass#771 sass#772 sass#773 sass#774 sass#775 sass#776 sass#777 sass#778 sass#779 sass#780 sass#781 sass#782 sass#783 sass#784 sass#785 sass#786 sass#787 sass#788 sass#789 sass#790 sass#791 sass#792 sass#793 sass#794 sass#795 #796 sass#797 #798 sass#799 sass#800 sass#801 sass#802 sass#803 sass#804 sass#805 sass#806 sass#807 sass#808 sass#809 sass#810 sass#811 sass#812 sass#813 sass#814 sass#815 sass#816 sass#817 sass#818 sass#819 sass#820 sass#821 sass#822 #823 sass#824 sass#825 #826 sass#827 sass#828 sass#829 sass#830 sass#831 sass#832 sass#833 sass#834 sass#835 sass#836 sass#837 sass#838 sass#839 sass#840 sass#841 sass#842 sass#843 sass#844 sass#845 sass#846 sass#847 sass#848 sass#849 sass#850 sass#851 sass#852 sass#853 sass#854 sass#855 sass#856 sass#857 sass#858 sass#859 sass#860 sass#861 sass#862 sass#863 sass#864 sass#865 sass#866 sass#867 sass#868 sass#869 sass#870 sass#871 sass#872 sass#873 sass#874 sass#875 #876 sass#877 sass#878 sass#879 sass#880 sass#881 sass#882 sass#883 sass#884 sass#885 sass#886 sass#887 sass#888 sass#889 sass#890 sass#891 sass#892 #893 sass#894 sass#895 sass#896 sass#897 sass#898 sass#899 sass#900 sass#901 sass#902 sass#903 sass#904 sass#905 sass#906 sass#907 sass#908 sass#909 sass#910 sass#911 sass#912 sass#913 sass#914 sass#915 sass#916 sass#917 sass#918 sass#919 sass#920 sass#921 sass#922 sass#923 sass#924 sass#925 sass#926 sass#927 sass#928 sass#929 sass#930 sass#931 sass#932 sass#933 sass#934 sass#935 sass#936 sass#937 #938 sass#939 sass#940 sass#941 sass#942 sass#943 sass#944 sass#945 sass#946 sass#947 sass#948 sass#949 #950 sass#951 sass#952 sass#953 sass#954 sass#955 sass#956 sass#957 sass#958 sass#959 sass#960 sass#961 sass#962 sass#963 sass#964 sass#965 sass#966 sass#967 sass#968 sass#969 sass#970 sass#971 sass#972 sass#973 sass#974 sass#975 sass#976 sass#977 sass#978 sass#979 sass#980 sass#981 sass#982 sass#983 sass#984 sass#985 sass#986 sass#987 sass#988 sass#989 sass#990 sass#991 sass#992 #993 sass#994 sass#995 sass#996 sass#997 sass#998 sass#999
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests