NHacker Next
login
▲The "Most Hated" CSS Feature: Cos() and Sin()css-tricks.com
52 points by rapawel 4 hours ago | 33 comments
Loading comments...
Sohcahtoa82 2 hours ago [-]
Surprises me when people hate on trigonometry. I enjoyed trig in high school so much that I made it my internet alias.
Waterluvian 2 hours ago [-]
Did you learn it as “sign on highway, cozy at home, tan on arm”? That’s basically the only high school math that stuck with me.

Oh and I guess negative b plus or minus b squared something something four a c over two a. I think there’s a square root to shove most of that into.

NoboruWataya 7 minutes ago [-]
For us it was "Some officers have curly auburn hair 'til old age". Never seemed like a good mnemonic given that you have to shorten "until" to make it work and none of us had any idea what "auburn" was, but I still remember it 20 years later so...
cameronh90 2 hours ago [-]
I always thought sohcahtoa itself was quite memorable. Sounds like a war cry!
bombcar 1 hours ago [-]
Or something those wordy math textbooks would have had - the Sohcahtoa Indians who dealt in triangles …
muzani 48 minutes ago [-]
We made this up in school: "saya tak hensem, kalau saya hensem, tentu Tipah suka" [opposite = tentang, adjacent = sebelah, cos = kos]

Translation: I'm not handsome, if I were handsome, Tipah (our principal) would like me"

25 years ago and I still remember it clearly. Also it was middle school education on how to solve problems in a different space; this one solving math in a second language space lol

spartanatreyu 1 hours ago [-]
I learned it as: Some old hags, can't always hide, their old age.

I guess this is the version we use in Australia.

36 minutes ago [-]
rndmio 1 hours ago [-]
In the UK it was “Attack Henry Cooper, outside his shop, on a Tuesday” no idea why the random violence but I never forgot it
gerdesj 35 minutes ago [-]
For me, UK, posh school, 1980s it was just "sohcahtoa" - easy enough to be its own mnemonic. No need to gild a lily.

Your order is cosine, sine, tangent - CST. A quick look at the other examples here seem to prefer SCT - as do I but only because that is what I was taught.

I also note your mnemonic is very different to the one I learned in having the function name last. So AHC vs CAH.

There is no right or wrong here but I'm sure we can agree that there are loads of mnemonics for these basic trig formulae and nationality isn't involved.

Theodores 1 hours ago [-]
Allegedly your grandpa, armed with his slide rule, has even more random violence:

"Spitfire or Hurricane come and hurry to our aid"

This works for me as the order of the functions matches the order shown on my trusty FX82A. Your version is kind of messed up.

I am giving this AI thing a wide birth, however, could we ask a LLM to invent a new aide memoire for this? We have got the silent generation and the boomers covered, but is there something we can do for kids today? Maybe it references Cinnamoroll, Hello Kitty or Octonauts characters that actual kids know, without it being ultra-violent.

memset 9 minutes ago [-]
Some Old Horse Caught Another Horse Taking Oats Away
rmonvfer 2 hours ago [-]
This made my day. Great alias!
untilted 2 hours ago [-]
Obligatory xkcd: https://xkcd.com/809/
chris_wot 1 hours ago [-]
You think they hate trigonometry, then you tell them about radians and they really hate trigonometry. Which is... crazy really.
lifthrasiir 4 minutes ago [-]
CSS trig functions, combined with mod() and friends, effectively enable seeded random noise functions as they did in shaders. Interesting times.
tasty_freeze 2 hours ago [-]
I can't wait for the LLM() function to drop.

  body { LLM(
    "You are an expert web designer, completely fluent in CSS.
    Create styling for this commerce website which is both
    eye-catching yet professional looking, while being engaging.
    Ensure it conforms to accessibility standards."
   ) }
falcor84 2 hours ago [-]
I actually am really looking forward to a future where we have better tooling for a true "user agent" that knows my preferences and can style every page automatically just ust the way I like it (and letting me override anything by asking it once and having it remember). I'm so tired of UX designers choosing things for me assuming I'm a 5-year old.
ponooqjoqo 32 minutes ago [-]
It seems far more likely that we'll end up in a state where you won't be able to override CSS at all. You'll be allowed to use only the most modern version of Google Chrome because all the websites will simply require a private auth key that only Chrome possesses, and commands like cURL will no longer function properly. The devtools console will be locked behind a key that you must petition Google to get, and if you use it for anything other than what they want, your permissions will be revoked without further recourse.
dgfitz 2 hours ago [-]
hallucinates ‘fluent’ and draws a net to catch eyes
raldi 2 hours ago [-]
Mods, new title suggestion: "CSS's cos() and sin() features"
geor9e 2 hours ago [-]
I would wholeheartedly support the mods rewriting every clickbait headline on HN (there are just so many…)
recursive 2 hours ago [-]
This seems like the type of thing that I'd want to like. But the necessity of inline assigning the `--i` CSS variables to each element bothers me. I have to use some template system or manually keep these variables in sync in my markup. Doing those things seems worse than doing this kind of layout arithmetic in javascript, loathe though I am to admit it.
mhink 2 hours ago [-]
He does mention at one point that sometime soon it won't be necessary:

> Note: This step will become much easier and concise when the sibling-index() and sibling-count() functions gain support (and they’re really neat). I’m hardcoding the indexes with inline CSS variables in the meantime.

The inline links there go to https://css-tricks.com/almanac/functions/s/sibling-index/, which is pretty nifty honestly.

zamadatix 2 hours ago [-]
Inlining isn't necessarily a requirement for how it's used here. E.g. you could put something like:

  .container:nth-child(1) {--i: 1}
  .container:nth-child(2) {--i: 2}
  ...
In your CSS. Still not all that ideal given you need to ensure you have enough entries for all the entries you might have... but at least a more dynamic and self-contained option until the `sibling-index()` feature they mention roles out.
Theodores 48 minutes ago [-]
Agreed.

I just checked with some code that I wrote a while back to rotate a faux-3D pyramid, to see how I did it. The trigonometry was the easy part, it was the backface culling that was the hard part. Anyway, I decorated my elements with CSS variables in script and used lots of Math.sin/cos/tan. Also present were lots of radian conversion things and the fun that goes with animating things the 'right way'. Basically oodles of extra stuff that took me the best part of a week to do, to result in something that memory leaks if left running for a few hours.

Now I have seen this article, I might just have to mix and match JS and CSS, so I build out the elements in code and add the CSS variables to them, for everything else to be done in CSS. I will obviously need an intersection observer to trigger the CSS rather than my JS, and so it goes on!

Either way, the trigonometry is the easy part, fixing that memory leak the hard part, but CSS is the way to go because that will work perfectly, unlike with JS.

alekratz 48 minutes ago [-]
When I loaded up the page, something like 5 empty HTML files downloaded automatically, did this happen to anyone else? Firefox Linux
F3nd0 11 minutes ago [-]
No such incident here. Firefox on GNU. Also using uBlock Origin, though.
2 hours ago [-]
egypturnash 1 hours ago [-]
brb gonna see how much of DOC’s Demons Are Forever can be collapsed into simple css animations (https://m.youtube.com/watch?v=3tSI8gw_yUQ)
swyx 2 hours ago [-]
oh wow first css tricks i've seen post acquisition

what's up with the magazine in general... is it doing ok?

spartanatreyu 60 minutes ago [-]
Post-acquisition the Digital Ocean ran it for a little while with the same staff, then they let a whole bunch of people go (both digital ocean and css-tricks staff).

The css-tricks website was basically dormant for a few years.

Chris (the original creator of css-tricks) sick of seeing his creation stagnate tried to get Digital Ocean to get the website going again but it looked like Digital Ocean didn't know enough about the site to resume posting.

At some point the website's editor (Geoff) who had been let go as part of the layoff came back to work on the website and their was much rejoicing.

---

You can read more about it here: https://chriscoyier.net/2024/02/28/where-im-at-on-the-whole-...

---

CSS-trick's content had a bit rocky at the start of its comeback, but it's feels much better now than it did when it first resumed.

The vibe is a little bit different now, but I think that's because so many webdev writers are experimenting and writing in the open on mastodon before posting on their own blogs and larger platforms like css-tricks.

We didn't get as much of a peak behind the curtain before.

2 hours ago [-]
drivingmenuts 2 hours ago [-]
Is it just me or did none of the examples show up in Codepen? The code was there, but nothing showed in the display.
muzani 59 minutes ago [-]
It didn't work for me the first time I opened it, but did after the second.
zamadatix 2 hours ago [-]
Hmm, worked for me on macOS, Linux, and Windows across Chrome/Firefox/Safari.
lyu07282 2 hours ago [-]
[flagged]