Tumgik
#why do i ever think making these edits would NOT take time gh
aaronswarncr · 1 year
Photo
Tumblr media Tumblr media Tumblr media Tumblr media
NIKOLINA APPRECIATION WEEK 2023 ♛ DAY 1: Favorite quote
I couldn’t help but smile.
“See?” he said. “If we’re not dead in a month, we might be very happy together.”
“Stop that,” I said, still grinning.
“What?”
“Saying the right thing.”
72 notes · View notes
shinsoussimp · 4 years
Text
kinktober day 26!
threesome - soft dom shoto todoroki x hard dom katsuki bakugou x ftm reader
TW: edging, degredation, deepthroating
a/n: i wrote this when i was very h!gh.. i tried my best to edit it, but if any mistakes slipped through please forgive me😅
a/n: also... holy shit this is long. sorry about that lol
Tumblr media
bakugou was normally extremely jealous. but when he noticed your lingering gazes directed towards todoroki he felt a bit of a different emotion. more like excitement. because he knew you were into him, there was no doubt about that, so this extra addition could only be fun. you were sitting next to bakugou in the meeting room at the dorms along with a few other students and he saw you once again looking over at todoroki. he pulled you closer into him and whispered in your ear.
“babe you’re practically on your knees for him.” he teased. your eyes widened more than they ever had. you didn’t know you were being so obvious, also was he not mad??
“what do you mean..?” you mumble softly causing him to chuckle. 
“you think i didn't know about your little crush?" you were dumbfounded by how he was reacting. you expected him to be blowing shit up. now it's not like you have full feelings for him and wanted to leave bakugou or anything but still. he was oddly calm about all of this.
"yeah i know." he smirks and looks you in the eyes, "you think icyhot and i haven't talked about this?" you're jaw is basically on the floor at this point. all of the sudden bakugou gets up and walks over to todoroki. he whispers something to him, then bakugou walks towards the elevator and todoroki signaled for you to follow him into an empty hallway. you listen and you find yourself standing in front of todoroki, who has his hands folded over his chest.
"so..." you say awkwardly. he takes a step towards you smiling when you instinctively take a step back.
"why so nervous?" he takes another step causing you to do the same, "trust me i'm the nice one." you gasp when your back hits the wall and he just chuckles a bit, "oops. nowhere to go."
"i-i don't get it.." you mumble shaking your head, very confused at what was going on, "where's bakugou?"
"upstairs. his room to be more specific. we'll see him in a bit." your eyebrows pull together, still having no clue what was happening.
"little one, we're gonna fuck you." he says blatently after he moved a bit closer to you. you gasp, not knowing how to react to that statement. i mean of course you had thought about something like this but you never thought it would actually happen.
"that's why you've been looking at me all of the time, you wanted me to join you two." he presses a soft kiss to the side of your neck, "am i right?" you let out a shaky exhale and nod.
"use your words, little one." he says softly as a hand reaches up to rub up and down your waist.
"y-yes i want that." he smiles and takes your hand in his.
"that's all i needed to hear." he says as he leads you to the elevator. once you two are inside todoroki breaks the silence first.
"by the way, bakugou isn't in the mood to go easy today. so i hope you didn't have any important plans tomorrow." before you can even say anything the elevator door opens up, revealing a shirtless bakugou that makes you blush more than you had been this whole time.
"look who it is.." he tilts his head to the side, "the boy who's so desperate, two people need to fuck him." you bite your lip trying to keep calm as you walk towards him. he harshly grabs your wrist and pulls you into his room with todoroki closely following. he throws you onto the bed and waits for todoroki to come stand beside him. they both stand there for a second, just eyeing you.
"what should we do with you first?" bakugou chuckles. not long after they order you to take all of their clothes off and they do the same with theirs. bakugou moves to hover over you on the bed. his hand slips down to grip your hip tightly as his attack your lips with his own. todoroki stands at the side of the bed running his fingers through your hair a bit.
"you can't fucking wait for this. already dripping for us..." he says after reaching a hand down and feeling between your legs. he toys with your clit a bit, both of them humming when you start squirming around.
"so sensitive, it's cute." todoroki coos at you. and bakugou scoffs.
"he won't last very long." he smirks, looking into your hooded eyes, "which is why i have an idea." he slips a couple fingers into you, curling them as he pumps them in and out. your back is already arching, you grip the sheets to try and keep your composure as both of the men watch you carefully. todoroki even reaches down to start palming himself as he watches. right as you feel like you're about to explode, bakugou's fingers pull out of you, leaving you feeling empty.
"f-fuck what what that for?!" you whine trying to move your hips closer to his hand. he pins your hips down to the bed, chuckling at how desperate you were right now. after giving you a few moments to come down he lines himself up with your hole.
"open your mouth." he commands. the stern tone in his voice makes you obey instantly. you open your mouth and turn your head to the side to see todoroki standing right in front of you.
"you gonna make me feel good, little one?" he says before running a hand through your hair again. you nod eagerly, so he pushes himself into your mouth and you start sucking. bakugou suddenly slams into you with no warning causing you to yelp around todoroki's cock.
"so eager to suck his dick. like a little slut, you like being filled up like this, hm?" he starts thrusting into you with no time for you to adjust to his size. soon enough you're close again but bakugou can feel it too, causing him to slow down.
"not so fast.." you try to whine again but todoroki's cock hits the back of your throat and you have to supress the urge to gag around him. bakugou speeds up again and reaches down to rub your clit again. you get edged a couple more times before todoroki gets close.
"i'm gonna cum. fuck-" he groans before he cums down you're throat.
"that was so goo-" as soon as he pulls out of you he gets cut off by your moans. he rubs your arm and pecks your forehead while bakugou slams into you with no mercy. soon enough he came too, but he pulled out before you could get the chance to do the same.
"fuck! bakugou p-please!" you squirm around trying to feel any friction.
"i don't know should i let you?" he smirks before todoroki shoves him out of the way a bit. then he dives in between your thighs and starts sucking on your clit, thrusting two fingers inside of you. you practically scream while your hand laces through his hair. bakugou leans down next to your ear and wraps his hand around your throat.
"you're fucking lucky. you're lucky he's nice. i could've done that like 30 more times." he kisses your lips roughly before kissing down your neck and sucking marks onto the sensitive skin. once again you feel yourself get close and your grip on todoroki's hair tightens.
"p-please can i cum? i c-can't hold it anymore." you whimper as bakugou's hand squeezes the sides of your neck a bit tighter, whispering 'cum.' into your ear. you immediately do, your whole body tensing and shaking. todoroki pulls away, leaving you feeling like jello as you try to catch your breath.
"how was that?" he teases. all you can do is mumble some gibberish as you frantically nod. bakugou comes back to clean you up and todoroki joins in too. once they finish they both climb into bed with you.
"so i'm going to assume you like having him join us, baby?" bakugou asks, causing you to nod again. you three soon enough pass out, knowing there would probably be a few more rounds later in the night.
and bakugou was right, this new addition would be a lot of fun. especially because they still have a few more tricks up their sleeves.
434 notes · View notes
kpoptimeout · 4 years
Text
Top 10 Most Underrated K-pop Songs of 2019 (Idol Edition)
Tumblr media
2019 has come and gone before we knew it.  
Continuing with the K-Pop Timeout Tradition (see 2018 Ver) of listing the Top 10 Most Underrated K-Pop Songs because all the other sites are just bothered with the Top 10 that pretty much everyone will have heard of/have fan wars over, below are our top 10 picks of songs that did not rank high but deserves your attention!
Like last year we have a separate post for Top 10 underrated non-idol tracks. Unlike usual years where there is a separate post made for Top 10 underrated K-Drama OSTs, this year there is instead posts for the Top 20 most underrated K-Pop songs of the decade.
Some of the artists have escaped the list in recent years to stardom (like NU’EST, N.FLYING, and OH MY GIRL), so hopefully, it happens again!
This is in alphabetic order NOT in the order of awesomeness because all of them are awesome. Also, all MVs are linked in the song titles because Tumblr won’t let me share that many videos in one post.
1TEAM “Vibe”
Tumblr media
After braving through the shitshows of Mnet’s BOYS24 and YG’s MIXNINE, these talented boys finally debut as 1TEAM under Liveworks Entertainment (the label for the solo promotions of SHINHWA’s Hyesung and Minwoo). This debut song of 1TEAM highlights some of the key strengths of the group - their extremely laid-back retro sound and also addictive hooks. With K-Pop boy bands going for increasingly dramatic and over the top complex sounds due to the popularity of hype bops among overseas fans, it is a breath of fresh air to see 1TEAM deliver such a chill and amazing song and it is unfortunate they have yet to receive more attention both in South Korea and overseas. They continue this sound in their comeback “ROLLING ROLLING” and went more mature and sexy while still simple and retro in “MAKE THIS”, showing that they will continue to develop this unique sound. If you like the relaxing summer sound of WINNER, you would also love 1TEAM’s “Vibe”! 
3YE “OOMM (Out Of My Mind)”
Tumblr media
After not getting much attention as Apple.B under GH Entertainment, 3 of the original Apple.B members Yuji, Yurim, and Haeun re-debuted as 3YE. And this was the right re-debut to make as the girls went from generic cutesy to edgy and hard in the most unexpected way. “OOM (Out of My Mind)”, their first comeback track, is definitely a powerful bop but what makes it stand out from other hyped-up party tracks is the structure of the song. The first verses were typical powerful girl group song sounding (a mixture of RnB vocals and rap), but things change up quickly at the bridge. The song suddenly becomes very melodic and sounding like something you would expect from a quirky girl group track. Then the song changes again, creating a dark and breathy build-up reminiscent to Billie Eilish’s “bad guy” and “all the good girls go to hell”. Only then do we get the beat drop you would expect from a lit girl group track and the adventurous path to get there makes the drop all the more enjoyable. Also, all three girls’ have amazing stage presence to carry the powerful choreo. If you love powerful girl groups like BLACKPINK and EVERGLOW, you should really check out 3YE’s latest song!
A.C.E “UNDER COVER”
Tumblr media
After stints on KBS’ “The Unit” and YG’s “MIXNINE”, the boys of A.C.E have definitely increased significantly in their international fan base and have the makings of a small but dedicated Korean fan base. However, these boys really deserve a lot more attention, especially with “UNDER COVER” being one of the best and also most underrated tracks of 2019 K-Pop. After attempts with artsy edm music in their debut era and later a cuter sound in “Take Me Higher”, the boys and the label seem to have finally found their sound. It is dramatic, it is powerful, it has a strong rock influence combined with hip-hop and RnB. Honestly, this is what I would expect TVXQ to sound like if they debuted in the late 2010s (cries thinking about OT5 early days and their rock influence tracks). This song also clearly highlights the strength of every member - Byeongkwan’s playful rap and diva-like stage presence, Wow’s more relaxed rap and sexy charms, Chan’s boyish appeal and perfect complementation of other members’ sounds, Jun’s attractive vocal colour and Donghun’s emotive voice and wide vocal range. If you love the dramatic and powerful boy band tracks like the bops of B.A.P, it is time to stream “UNDER COVER”!
fromis_9 “FUN!”
Tumblr media
After the amazing comeback with “Love Bomb” last year, I really did not know how fromis_9 can top that but they really did with “FUN!” They continue to go for the really quirky, really weird and playful cute girl group sound they perfected in “Love Bomb” to bring an amazing and refreshing summer track. “FUN!” has a ridiculously catchy hook and like other fromis_9 songs have beautiful bridge parts to also showcase the members’ amazing vocal abilities and harmonies often hidden under their hype and wild choruses. Also, the music video is a delight, with the girls’ parodying various CFs. The album for this song peaked at #2 on Gaon Charts but somehow this amazing title track did not rank at all on Gaon and only peaked at #94 on the K-Pop Hot 100 of Billboard. If you love the addictive, fun and weird side of girl groups like Red Velvet and Oh My Girl, you would really enjoy fromis_9′s “FUN!”
GWSN “Pinky Star (RUN)”
Tumblr media
After a unique debut and a string of consistent bops, it is unclear why most K-Pop fans are still sleeping on GWSN. “Pinky Star (RUN)” is an amazing song, showcasing GWSN’s indie video game-like sound which is heavily electronic and 8-bit like yet has all the K-Pop high notes and dance breaks you would also expect. This perfect blend of the girls’ unique sound and a seasoned K-Pop style production makes the song all the more amazing and it all the more infuriating they are still quite a nugu group in South Korea. The MV is also beautifully shot, with amazing sets and smart use of the aspect ratios. If you love to see the artsy pop vibes of BOL4 and IU married with the quirky girl group sounds of Oh My Girl, you would love GWSN’s “Pinky Star (RUN)”!
JBJ95 “Awake”
Tumblr media
After PRODUCE 101 Season 2 and the success of JBJ, JBJ members Sanggyun and Kenta continue as duo JBJ95 and continue delivering quality music. One of their best songs and one of the best of K-Pop this year is arguably “Awake”. The song excels in having this bright and dreamy texture to it, which blends perfectly with the concept of the song and the Bauhaus-styled MV set pieces. Those listening to the song which literally feel woken up by the upbeat chorus which incorporates some dancehall beats into this electro-pop song. While JBJ95 are without a doubt doing quite well out of the post-PRODUCE 101 groups with variety show appearances and web drama roles, this song did not win any awards albeit its superb quality. If you are a fan of SHINee’s more fun and dream-like tracks like “Why So Serious?” and “View”, you would love this song!
KNK “Sunset”
Tumblr media
Last year was extremely annoying when IN2IT’s “Snapshot” and SF9’s “Now or Never” flew under the radar of most K-Pop fans and the Korean public in general for their sexy supermodel runway sounds. Apparently, people have still not learned their lesson this year with the spectacular release by KNK in the form of “Sunset”. These talented men are back again with one of the best concepts ever - the song is just a 90s house bop that serves expensive runway model realness. The chorus of simply just Seoham saying “Sunset, for-for y'all” again and again in his deep voice is definitely one of the highlights of the song along with the classy and mature choreography. The MV of this absolute bop is also an example of how low-budget MVs can look expensive if there’s good camera work, creative lighting and smart editing choices. So if you liked IN2IT’s “Snapshot” and SF9’s “Now or Never” last year, and love yourself some good mature and sensual choreo like Taemin’s, “Sunset” is the song for you!
ONF “Why”
Tumblr media
At this point, ONF is just one of the best-kept secrets in K-Pop. All the members already showcased their immense talent on YG’s “MIXNINE” but somehow South Korea still does not seem to know they exist. And it is infuriating that after a masterpiece like “Why”, they are still swimming in absolute nugu-dom. This song sounds ridiculously dramatic, with beautiful high notes and sentimental harmonica/synth instrumentals in the chorus. One of the highlights of the song is Wyatt’s deep-voiced speed rapping which was layered with multiple effects so that it sounded like it was being received through a device from afar and also serves to make it so much more grungier. Basically, the song sounds like it could be the OST for a high-budget Netflix dystopian sci-fi series and the MV shot in Moscow actually gave us some very expensive looking CGI and effects. It is difficult for me to find a song to compare “Why” to but if you love yourself a dramatic boyband track, you should really check it out!
SAAY “ZGZG”
Tumblr media
This song just hits hard in a very unique way. Following her departure from EvoL (a highly underrated girl group), Kwon Sohee/SAAY has mainly worked as a producer and songwriter, penning bops for SM Entertainment and often working with Super Junior M’s Henry Lau. As a solo artist, she shows that she has a lot to show in “ZGZG”, which honestly would not be such a great song if not carried by her off-the-charts amount of charisma. The chorus is just her swag-filled mumbling of the word(s?) “ZGZG” and it works because of her attitude. She also belts high notes and delivers smoking hot bars when she raps in the song too. If you are a fan of confident female solos like Hyuna, Sunmi, and Chungha, I now urge you to check out this amazing song by SAAY!
UP10TION “Your Gravity”
Tumblr media
UP10TION is an extremely talented group but have failed to make a mark in the K-Pop industry due to years of TOP Media’s mismanagement. One of the biggest mismanagement moves, in my opinion, was giving UP10TION good but extremely generic K-Pop title tracks. There was never a song that screamed: “this is an UP10TION-only track.” I can go on forever about TOP Media’s poor management of all its groups but now is the time to focus on what a brilliant song “Your Gravity” is - UP10TION has finally found a unique sound and they really owned this song, making it arguably one of the best and most underrated songs of the year. The song plays on an addictive synth hook and good use of diverse beats. The whole song just sounded super fresh yet not cutesy but high energy at the same time - a rare example of balancing freshness and coolness. The MV is also filmed very well, with shots from very interesting angles and great use of a few set pieces in a variety of ways. The closest comparisons I can make would probably be WANNA ONE’s “Energetic” era. If you love a powerful and feel-good track, UP10TION’s “Your Gravity” is the song for you!
Special Mentions of Underrated Debuts:
There were many strong debuts this year and I would like to mention 2 underrated rookie groups to look out for in 2020!
Male - 1TEAM “Make This”
I have already discussed 1TEAM’s greatness and music style above, but the reason I also chose them as the most underrated male group debut is because out of all the underrated male idol debuts this year, 1TEAM is the only one that have already showed us their consistency and duality. “MAKE THIS” continues 1TEAM’s retro sound and aesthetic - the song sounds like how people in the 80s think future sexy music would be like and also how people right now thought 80s sexy music remade might sound like. So even though 1TEAM went from soft and cute in their first two title tracks to mature in this latest comeback, they still stayed true to their retro sound. The MV is also delight due to the very “2001: A Space Odyssey” inspired looking set pieces.
Female - BVNDIT “Dumb”
MND Entertainment’s newest girl group and basically Chungha’s younger sisters, BVNDIT may have been overlooked as they debuted in the same year as JYP’s ITZY, HINAPIA which features PRISTIN members, and a string of post-PRODUCE 48 girl groups like EVERGLOW, CHERRY BULLET and ROCKET PUNCH. However, BVNDIT has a lot to offer and has likely one of the most standout sounds and looks. The girls all have confidence and stage presence unlike any rookie girl group and this really shined in their songs following the safer pop song debut with “Hocus Pocus.” The south-east Asian and Latin American influences in the drums used in their songs like “Dramatic” and “Dumb” also gives them an opportunity to attempt more powerful and mature choreography than some of the rookies, giving them an additional edge. With the company now starting to use a “Chungha-like budget” in their production as seen in the “Dumb” MV, I believe we can expect a lot from BVNDIT in 2019.
Which idol songs do you think were underrated this year? Leave your thoughts in the comments section below and let the song sharing begin!!!
20 notes · View notes
docbeige · 7 years
Text
BuzzFeed Unsolved Starco AU
Marco is Shane, Star is Ryan :3c
You know maybe I’ll make this a part thingie. Look at me being ambitious when I’ve never even written fanfiction before. How long will that last?
OH! It’s Star’s POV too.
Also I barely edited because it’s 2 in the morning and my face hurts.
Hope you guys like it!
“MARCO!” I called in the loudest whisper I could manage as I tried to get my coworker’s attention from across the crowded office. Miraculously, he heard me and he looked up ever so slightly, already trying to analyze why I might be calling him. He’s perfect, he’s just what the show needs.
I quickly tiptoed over to his slide-y chair and he merely shifted his gaze to my face.
“Marco!” I repeated, “I need someone to help me do this new series for the blue channel, and Janna said you were a skeptic so I think you’d be good for it.” I rambled quickly and Marco thankfully looked intrigued.
“What do you need a skeptic for?” He asked and I smiled because this must mean I got him.
“It's for the Unsolved thing I used to do with Pony Head but we got into some...issues.” I paused for a second awkwardly as my mind wandered, but then got back to the matter at hand. “We talk about murders and ghosts and fun stuff!” I clasped my hands excitedly to emphasize my statement and beamed as Marco smiled, seemingly convinced.
“Well I’m sure this old skeptic could be of service to you,” he said as he straightened an invisible tie, “when are we shooting?” he asked.
“Oh, in like, ten minutes, but it's no big, your part’s unscripted,” I checked my watch, “but we should go now anyways, so up, up, up!” I ushered him out of his chair and he hastily followed me to the room we were recording in. I loved the set for this show; it had so many spooky things, like skulls and dark lighting.
“Here we are!” I said. I excitedly showed him to his chair, I picked up my folder with my notes inside and took Marco through a visual tour. I motioned to all the creepy stuff in glee, as I was proud of the establishment. Janna and I had worked so hard getting all this stuff cheap, so I was gonna show it off.
Speaking of Janna, she smiled knowingly as she saw Marco settle into his new seat.
“Took my advice, eh?” She nudged me with her elbow. I nodded earnestly and hugged my folder to my chest as I watched Marco take in the room.
“I'm so glad you mentioned him, I forgot about his two hour rant about how the Blair Witch Project was clearly a murder mystery and that just screams Non-Believer.” I managed to stop myself from squee-ing, “It might be tough, but it’s definitely a plus to get the other perspective in the show. And Marco’s hilarious so this is gonna be great!” I finally couldn’t help it. I let out a squee.
Janna looked at me like I was a camera on The Office but I took no notice. I was too excited to get into the theories. This episode was a fun one.
Sighing, Janna brought me back down to Earth and gently pushed me in the direction of my chair and I realized I should sit down so the crew could set up the rest of the lights.
Marco turned to me with a smile and he said, “So, what are we talking about today?”
My eyes lit up with anticipation and I told him so he wouldn’t be caught off guard.
“We’re talking about the illuminati.” I said with glee.
He laughed and raised an eyebrow.
“Really? The triangle society?” He laughed again.
I felt slightly defensive, but I didn’t let it show.
“It’s not just triangles, besides I bet you don’t know where it all starts or any of the evidence for it in recent times. This is an educational show, Marco.” I said pointedly.
He smirked at me, “Oh, I’m sure I’ll learn a whole lot.”
Satisfied with his answer, I smiled again until a post-it on my folder fell into my eye line.
“Ooo! Before I forget, clear your schedule for all of thursday we’re going ghost hunting. Also we need to go to Mexico. And Kansas.” I flicked off the post-it as it had served its purpose and Marco followed it with eyes as he slowly absorbed the information.
He broke through the shock in broken sentences.
“Gh-ghost? Hunting? Why Mexico and when Mexico and, what?!” He scooched his chair closer to me and his eyes met mine and all I could see in them was confusion.
“I need you to repeat...everything you just said, but just, just pace yourself,” he said carefully.
I figured first comes first. “Thursday, can you go ghost hunting? Also, I wanted to meet with a priest, so it’ll literally be all day thursday.” I asked slowly.
He nodded dumbly before voicing his answer as well.
“Y-yeah I do Thursday.” Marco cleared his throat, erupting from his shock, “I didn’t realize you’d actually want to attempt to contact the ghosts that are clearly not real.”
I made a noise that was half offended, half confused.
“You-You can’t say definitively that ghosts don’t exist, that’s why we gotta find them.” I said matter-of-factly.
“Yes, because they are hiding and my charm will draw them out, those silly demon boys.” Marco said mockingly.
“You laugh, but you shall seeee.” I said in a spooky voice. Marco chuckled and I joined him playfully until Janna got our attention to start filming.
I carefully restacked my papers in an anchor-like way and looked to my Marco dramatically, only to be caught slightly off-guard when I noticed he had been staring at me.
A nervous laugh erupted from me awkwardly and I tried to cover it up with a falsely confident “You, uh, you ready?”
Marco backtracked from his staring almost immediately and cleared his throat, before saying “yeah, yup, totally...ready.”
“Okay.” I said, turning away from him, as a funny feeling in my stomach grew. I shook it off and yelled, “Janna!”
Janna answered my yell with a suspiciously sweet “What?” from behind the white filming line.
“We ready to, uh, to start?” I asked, noting that Marco’s demeanor was slowly shifting back to his casual self. Which got me to settle back into a more comfortable state as well.
Janna only gave a thumbs up in response and our camera guy Adam said, “Anytime you wanna start, Star.”
I nodded affirmatively and snuck a glance at Marco. He smiled at me encouragingly and so I opened my folder to start, knowing this was going to be a tricky first shoot but Marco and I would grow into this show more over time. The ghost hunting was gonna be so much fun too. And less scary since Marco would be there.
I took a deep breath and looked straight into the camera to begin.
“This week, on BuzzFeed Unsolved…”
11 notes · View notes
bloojayoolie · 6 years
Photo
Tumblr media
Af, Anime, and Apparently: , Okay Ibl, story ame when I wss younger, had this Irish friend who pred our school when w as like 17, Dude ded recently nd here丐the ballad of the merveeus bsstard be average as fuck 17 year old Bribong Some foreign guy has just joined, his family just moved here city called Dery in Mgved here with his dad and his lite sister, his mum died when he was younger He gets put in my class and ends up stting nest to me This is howl met Eigh-Beers Mgee the all him Call him a hippo because of his fucking industrial size frant teeth and his big flucking lps Greg uses his adism to get out of doing and saying whatever the fuck he wants noing EB wth she lke Greg has his desk very paricularly arranged, pens on one side in a straight ine pencis on the other Dude is OCD as fuck with his pencilcase and shit Goes nuts i anything gets moved, so this desk is sightly apart from everyone elses We all get in shit twe fuck with him an purpose, We ought to know better The sutistic hippo keeps trying to get a reaction out of EB the whole class All af a sudden EB just casualy raises a foot and pushes the Hppo's desk right the fuck over Teacher hurries oer and trying to explan to EB atma Gregs autism while Greg teaks the tack G in his chair, breathing reawy ss thoug gh nong bd sheer辍tstie resentment EB looks at Greg and betsthe teacher "Oh sorry, wedant have Wid bump with more nenhinbeland' h on EB's third day at our school He's a pretty cool guyikes the 쑈me vidya and movies as me and is a big fan of Rugby, was captan of his team back iieland ell hem the school has s rughy searn he says EB goes to check it out, starts off on the lower team because hes think theyire ston of kind of fast runners gets recks fucking everyone that next hal f hel take him Jumps on him, grabs him by the neck to pull him down and iterally rolls on him ike a fucking rolling pn -EB didniteven have the bal What the fook you playin at son I didnt even have the ball, do you even know how to fookin play the game lad EB grins You know over in Ireland you have to be fit to play sports, the fatties get leit on the sideline EB grabs his amn and tosses him to the ground dude twists his anke or something and starts twitching and squeaking lke a baby elephant with parkinsons EB gets put on top team Anonymous (D wHTHOgC) 03 19/14(Wedj20 28 25 UTC-5 No 538041137 Reple 41T months without inc dont give long as youre cool to him dents aside from a few close cals with Greg the Mildly Autistic Hppo e pretty close Apparently ㅲ Ireland they don't have gangs they have paramitanes fighting between whether Northern lreland ts Britsh or hsh >He plays 4down a kal, bd ican tell some shit mu have Pagpened because he always changes the subject when gets clos·tohame Edgy fapgot Luke comes back to school Luke hangs around with a pack of riggers who are all apparenty in a gang, he les to pretend he's part of this "gang" and carries this fucking Stanky e around that he panted red and bue for some reason aOne day at lunch Like corries up to EBied o ofnotere starts askrig his datisalcoholc Nope aound Tm guessin your mam had a far lew belore you were born though mate Well tuck Ind wanna sift speI had to sht out a dat bastardlke yourset. Jog on ン"You win t)4ck with the wrong person t y inst, boy?" EB starts laughing, IHeraly loses his sht at the ste of this Itle fagpot in a trenchc oat with a stanley knfe and actualy presses EB grabs his wrist, takes the fabled blade from the hands of the chosen one tosses t over a fence and punches him straight in the face We're out geting beer, Tm with a 7/10 GT that Ive had a crush on for tucking months Her and EB get along realy wel, athough I sort of think she only hung out with us because EB did That right when we're all drunk, me and QT end up fucking Leaving out my side because this is the ballad of Eght Beer, not me Spend ages taking with QT,estabǐshthat shè apparenty seat, ikes me back EB heads up to bed, I stay down with the other guys to watch TV, QT was askeep when 1 came down QT comes running do wwith a towel round her, soaking wet, and rung out the ont door Apparently EB sleeps naked, not surpnised since Ive found him naked before after a night of drinking Says she came on to himeven ater all he shit she said aLaugh숨 and says he took aprt to bed with hm,awas cn e tablo and when she ed onwth him he lossed all over her Threw her clothes out the wendow into the rain and told her to go and fetch Two weeks later he takes me to a pub and hooks me up with a 910 Anonymous (TDwHT HOC) 03/1914(Wed 20.43 59 UTC-5 No 538044014 Raps.4380408044772 332420 EB and me are total bros after being fnends for a few years 가%aving hm as a best friend is Ike havngtose nasty trainers as a kid Shit get pretty he avy >Him and E汨were close, mostly because EB would buy him vidya and act super interested in the anime sht he lied because nobody else other than me would loses his har chermo aGotovst him, EBisgung me there >He thinks rs awesome get our photo taken together witout any har EB lets him draw all kinds of dumb sh on his bad head, lets him draw a dumb moustache on him o Spend ages just dicking a >Son of a bitch luke who R is, Dukey the Rookie is across the bar in the same tucking trenchcoat he wore back at school >EB says hi chats away to him lbe nothing ever happened >We head home and EB spend the night sitting up with me playing Batlefront on my old P52 and drinking, just trying to cheer me up me every time Sorry for that 2sad4me post, but iti make sense later Anonymous (IO woitth%) 05/19/14(Wed)20 52 46 UTC-5 No 530045357 Reeses 씌38amsrme esaaa Lving together in a let with some chick and her boyfriend The one song I remember is "Uncle Tommy by The Rumjacks, because it played when sht went down EB told them that he "ain't lookin any trouble lads, have a beer and forget that tripe for the night aye? 4 of them jump on him, start beating the shit out of him -l tackle one of them to try help him, get the fuck beaten out of me but fuck that it's goddamn E8 in there EB broke the dudes fucking am He gets up, bleeding out of every pore in his beaunful iwish body Bouncing around with his fists up, Ieraly looks ike he could fly around the room he's bouncing that much The skinheads keep going for him but back off every time aher he swings, it looks lke he could knock a building down with that sh Babbling some incoherent shit in lrish rage, nobody understands the words but everyone understands the meaning pack up there sht ike a scene from a fucking move Eight tucking beersl You splied eight of me fucking beers you hairless tuckin mongrels Eight beers lad, eight fucking beers What's the fucking craic there lke Anonymous (D: wHTiHOgC) 031914(Wed]21:6 02 UTC-5 No. 538047326 EB sgoing back to Ireland to vist his nan, she's real sick 기we lar dr, Befast-thritrs the captal of the oth but not of Ireland ckhow t wori ed EB never eaty expla edit, 5ad you wont understand the bullsh politics unless you grew up there go 1o vist his nan with EB' Sweetest tucking old lady ever, says that EB was always a rough lad but awk he'd never hurt a sour greedy fucker This woman is clearly the most infuenial famly member in the Eight Beer famly EE shows me round Derry, tels me about how 5pIt relgusy and shows methes bg ass wall cood place Takes me to Belast agan and shows methe pace wherethe ttanc was bu -we end up going to place caled The Crown Bar Ger pretty drunk, or Tpped as EB calls it Walked around Belfast for a bt, he tells me about the history of some stuf »Spend a few nights there, have a fucking blast but decide to head home don't wanna be an inrusion on the whole nan stustion Lad you're practicaly a part of the famly Anonymous D wH7HOQC) 03/19/14Wd21 18 48 UTC-5 No 538040230 Getting close to the end now Shits hard to wrte, I miss hat fucker Life is prety uneventful for a wle pparentty some Kiddy Fiddler called Wilm Whight fucked EB when totally agan family home a load of sht, fucks 2EB spends all nut there next to her, nearly gets wolent when staff ask harto leave so doctors can sort some 닸官out calm him down and we wat r, hosptzd for brig bme B's Sister gets beter, but is pretty fucked for life Never taks never leaves the house she's pretty much a goddarmn vegetable EB spends all of his time off work with her, never comes out anymore, just sts in with her. We sometimes come ound and drink with him but he refuses to leave the house -One night while he's sieeping, EB's fucked up sister C's faul, that's pretty much the main subject of t. I don't get why she'd need to say that but whabever Tels me he waan't that close with his family back home his dad is fucked up with grief and everythings just a mess ie doesn't want to go home because he has nothng there other than remnders, but doesn't want to stay here because of what has pened Does his best to be the usual bi9dck coolguy that he always was, puts on a brave face but f you c h him on his own he's luckn9 merable ite gets in 갠 few fights when we're ot dmkrg ry one who gnestmamy 5hvt gets m edistety fucking amidated none ofths ads everyone on" that he used to do s fighting back tears already guessed, but he starts teling me about how he blames himseffor what 거had pened to his sis have tucking known better >Lterally carrot change his mid anthis shit, looks like he has himse#1uly convinced th this is his taut we talk about old imes laugh a be things actualy seem back to normal for whie Ainight mabe. Let's have one for old tme's sake, ae? Hie eventualily leaves, but before he goes he tells me that 'You've been a good mate from day one mate. Honestly out on a limb rd do fuckin' anything for ya Take t easy lad speti ong tme EB doesn't reply to teats or Cutign place doeant answer B tucking hung himsel is fanly tatoo many things that I don't need thanked every tme fucker
2 notes · View notes
kakkoweeb · 6 years
Text
tagged by @atsumus thank you i see this is about writing and i love you for that
i,, don’t know who to tag WRITER FRIENDS ASSEMBLE okay maybe @karasunovolleygays hello i am interested to see you do this, if you haven’t yet
1. How did you come up with your username and what does it mean?
i formulated it for tumblr and and decided to use it for ao3 to retain my branding. it’s basically just, cool weeb idk it’s not even true but i’m owning it
2. Which fanfic of yours has the most feedback? (bookmarks/subscriptions/hits/kudos)
that would be the multi-chapter i guess. though i do want to maybe someday do actual math like. compare the kudos/comment ratio with the hits and then calculate which ACTUALLY performed the best based on that.
3. What is your AO3 profile icon, and why did you choose it?
oh it’s that one art i did of oikawa saying “4 YEARS WE’VE KNOWN EACH OTHER AND YOU DON’T WANNA SEE ME JUMP OUTTA DA CAKE” except i put a comic sans ‘excuse u’. not sure why i used it either; it makes me look sassy whenever i reply to comments but it got me a mutual (lolol hi vio) and people comment about it when they see it so No Ragrets
4. Do you have any regular/favourite commenters?
yES. the oikage ao3 community is so kind to me tbh ever since i posted my first fics. of course i love every single commenter i get (with one exception, maybe.) and i appreciate the diversity when i post non-oikage fics too. (those are basically my ao3 categories. oikage and misc JDFKSJD)
5. Is there a fanfic that you keep going back to read again and again?
i reread my own fics from time to time for no reason and the ones that i come back to the most are from the p+c series i did for oikage week. i’m sort of proud of them? but i feel like they didn’t get as much feedback as i would’ve liked so i appreciate them in my own time. #2 and #5 in particular.
6. How many stories are you subscribed to? How many do you have bookmarked?
i’m a picky person, so i only have 25 bookmarks, 8 work subscriptions, and 3 user subscriptions. the bookmarks and subscriptions may overlap
7. Which AU do you find yourself writing the most?
i am a private au royalty, and i have so many idek which to start, which i’m actually going to write, etc. i’m a sucker for complex and adventure aus, as well as the heart-wrenching ones
8. How many people are subscribed and bookmarked to you in total? (you can view this on the stats page)
uhhh user subscriptions are 25, subscriptions are 86, and bookmarks are 331. doesn’t seem like a lot haha how dare you ask me this,
9. Is there something you’d like to write about but are afraid of people judging you for it? (Feeling brave? If so, share it!)
basically everything that i write yet don’t post. mostly because they involve my ocs. don’t get me wrong; i’m good at making ocs now i don’t mary sue or anything and they’re all really cool and story-relevant but people just don’t want/need to see that kind of thing, you know?
10. Is there anything you would like to be better at? Writing certain scenes or genres, replying to comments, updating better, etc.
setting description, dialogue-heavy pieces, condensing a work to involve less words, romance in general u gh how an anti-romance as a genre person ended up here is a mystery to me, and just. writing in general. as far as i see, i still suck
11. Do you write rarepairs or popular ships more often?
rarepairs. i don’t think i’ve ever glorified a popular ship before. if ever i do write for them it’s just because it was requested or something.
12. How many stories have you posted on AO3 to this day (finished and unfinished)?
21
13. How many stories do you have saved in/with your writing program?
uhhhh last i counted i had like 30+ non-drabble/short WIPs but that was last year. a lot has happened since then adfjsdkf
14. Do you write down story ideas, or just keep them in your head?
my head can’t remember what day it is, so i write em down. 
15. Have you ever co-authored a story?
nope (i want to tho)
16. How did you discover AO3?
tumblr, i would think, back when i was still fixated on dmmd.
17. Do you consider yourself to be a popular or famous author in your fandom(s) on AO3?
HAHAHAHA no
18. Do you have a nickname or fandom name for your readers?
nope lmfao but i could. because i am kakkoweeb from now on y’all are The Weeb Shits djdkf im joking of course. does anyone other than youtubers even do that?
19. Was there an author who inspired or encouraged you to write?
when i was eight years old, i think that would be anne mazer. right now, i’m inspired by my favourite fic authors bECAUSE THEY’RE ALL SO GOOD i’d name drop/tag but i’m embarrassed haha,, basically take a good look at my bookmarks you’ll know who they are
20. What writing advice would you give to a beginning author?
everyone has to start somewhere, and i think a pretty good start before the actual writing is reading. reading is where the whole thing begins, and from it you can get ideas and styles and words, and develop your way of thinking. as for actual writing: it’s important not to pressure yourself to be really really good and that you find ways to have fun with it. write for your own reasons. look to improvement, but not to the point that it’s all you care about. it’s normal to get stuck, it’s normal to go slow. but if you really love it, don’t quit. keep writing and you’ll never go wrong. oh, and editing is your friend.
21. Do you plot out your stories, or do you just figure it out as you go?
definitely plot out. it’s going to be impossible for me to remember everything on the fly, and ideas pop out at random times in the day and i can’t discard them, so each story has a plan. the level of detail depends on the complexity and my own creative ability at any given moment. sometimes tho i get ideas midway through speed-typing and just go with them.
22. Have you ever gotten a bad comment on a story? If so, what did you do?
no, not really bad. some kind of off-topic, yes, but not bad. i just don’t reply.
23. Is there a certain type of scene that you have a hard time writing? (action, smut, etc..)
romantic things in general. the emotions and sensations that come with touch and affection, because i don’t write those based on experience.
24. What story(s) are you working on now?
…a lot. just. a lot.
25. Do you plan your next project(s) before you finish your current ongoing story(s)?
bruh yeah. i even have projects that have spinoffs/sequels where i want to write the sequels before the actual project 
26. Do you have a daily writing goal set for yourself?
ideally, that would be to write and then feel satisfied with what i’ve written, in terms of the degree of accomplishment (did i just finish a subsection or a chapter? get past a part where i was stuck?) and the quality. most days, it’s too high a goal.
27. Do you think you’ve improved as a writer since you first started?
infinitely, yes. it’d be a little embarrassing if i didn’t improve since childhood
28. What is your favorite story that you’ve written?
i,, i don’t know, i like and hate them all to some degree lmfao
29. What is your least favorite story that you’ve written?
:)))) i don’t want to talk about it. if you read my writing journal though, you might be able to tell what it is.
30. Where do you see yourself (as a writer) in 5 years?
hopefully finished with a couple of things, still writing, and maybe with some writer friends? I HOPE AND CREI
31. What is the easiest thing about writing?
…finding a word processor. LMAO idk each aspect has its own easy and hard moments depending on the type of project you’re working on. getting excited about an idea, maybe? that’s easy
32. What is the hardest thing about writing?
writing
33. Why do you write?
because i have been for years and don’t know how to do anything else, and because i want to be the content i want to see in the world. also because i have like 34838 worlds in my head and need a medium for all of them 
1 note · View note
riichardwilson · 4 years
Text
Introducing Alpine.js: A Tiny JavaScript Framework
About The Author
Phil Smith is a freelance developer based in Brighton, UK. His agency, amillionmonkeys partner with designers, entrepreneurs and agencies to build websites and … More about Phil …
Ever built a website and reached for jQuery, Bootstrap, Vue.js or React to acheive some basic user interaction? Alpine.js is a fraction of the size of these frameworks because it involves no build steps and provides all of the tools you need to build a basic user interface.
Like most developers, I have a bad tendency to over-complicate my workflow, especially if there’s some new hotness on the horizon. Why use CSS when you can use CSS-in-JS? Why use Grunt when you can use Gulp? Why use Gulp when you can use Webpack? Why use a traditional CMS when you can go headless? Every so often though, the new-hotness makes life simpler.
Recently, the rise of utility based tools like Tailwind CSS have done this for CSS, and now Alpine.js promises something similar for JavaScript.
In this article, we’re going to take a closer look at Alpine.js and how it can replace JQuery or larger JavaScript libraries to build interactive websites. If you regularly build sites that require a sprinkling on Javascript to alter the UI based on some user interaction, then this article is for you.
Throughout the article, I refer to Vue.js, but don’t worry if you have no experience of Vue — that is not required. In fact, part of what makes Alpine.js great is that you barely need to know any JavaScript at all.
Now, let’s get started.
What Is Alpine.js?
According to project author Caleb Porzio:
“Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit.”
Let’s unpack that a bit.
Let’s consider a basic UI pattern like Tabs. Our ultimate goal is that when a user clicks on a tab, the tab contents displays. If we come from a PHP background, we could easily achieve this server side. But the page refresh on every tab click isn’t very ‘reactive’.
To create a better experience over the years, developers have reached for jQuery and/or Bootstrap. In that situation, we create an event listener on the tab, and when a user clicks, the event fires and we tell the browser what to do.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
That works. But this style of coding where we tell the browser exactly what to do (imperative coding) quickly gets us in a mess. Imagine if we wanted to disable the button after it has been clicked, or wanted to change the background color of the page. We’d quickly get into some serious spaghetti code.
Developers have solved this issue by reaching for frameworks like Vue, Angular and React. These frameworks allow us to write cleaner code by utilizing the virtual DOM: a kind of mirror of the UI stored in the browser memory. The result is that when you ‘hide’ a DOM element (like a tab) in one of these frameworks; it doesn’t add a display:none; style attribute, but instead it literally disappears from the ‘real’ DOM.
This allows us to write more declarative code that is cleaner and easier to read. But this is at a cost. Typically, the bundle size of these frameworks is large and for those coming from a jQuery background, the learning curve feels incredibly steep. Especially when all you want to do is toggle tabs! And that is where Alpine.js steps in.
Like Vue and React, Alpine.js allows us to write declarative code but it uses the “real” DOM; amending the contents and attributes of the same nodes that you and I might edit when we crack open a text editor or dev-tools. As a result, you can lose the filesize, wizardry and cognitive-load of larger framework but retain the declarative programming methodology. And you get this with no bundler, no build process and no script tag. Just load 6kb of Alpine.js and you’re away!
Alpine.js JQuery Vue.js React + React DOM Coding style Declarative Imperative Declarative Declarative Requires bundler No No No Yes Filesize (GZipped, minified) 6.4kb 30kb 32kb 5kb + 36kb Dev-Tools No No Yes Yes
When Should I Reach For Alpine?
For me, Alpine’s strength is in the ease of DOM manipulation. Think of those things you used out of the box with Bootstrap, Alpine.js is great for them. Examples would be:
Showing and hiding DOM nodes under certain conditions,
Binding user input,
Listening for events and altering the UI accordingly,
Appending classes.
You can also use Alpine.js for templating if your data is available in JSON, but let’s save that for another day.
When Should I Look Elsewhere?
If you’re fetching data, or need to carry out additional functions like validation or storing data, you should probably look elsewhere. Larger frameworks also come with dev-tools which can be invaluable when building larger UIs.
From jQuery To Vue To Alpine
Two years ago, Sarah Drasner posted an article on Smashing Magazine, “Replacing jQuery With Vue.js: No Build Step Necessary,” about how Vue could replace jQuery for many projects. That article started me on a journey which led me to use Vue almost every time I build a user interface. Today, we are going to recreate some of her examples with Alpine, which should illustrate its advantages over both jQuery and Vue in certain use cases.
Alpine’s syntax is almost entirely lifted from Vue.js. In total, there are 13 directives. We’ll cover most of them in the following examples.
Getting Started
Like Vue and jQuery, no build process is required. Unlike Vue, Alpine it initializes itself, so there’s no need to create a new instance. Just load Alpine and you’re good to go.
<script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.js" defer></script>
The scope of any given component is declared using the x-data directive. This kicks things off and sets some default values if required:
<div x-data="{ foo: 'bar' }">...</div>
Capturing User Inputs
x-model allow us to keep any input element in sync with the values set using x-data. In the following example, we set the name value to an empty string (within the form tag). Using x-model, we bind this value to the input field. By using x-text, we inject the value into the innerText of the paragraph element.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
This highlights the key differences with Alpine.js and both jQuery and Vue.js.
Updating the paragraph tag in jQuery would require us to listen for specific events (keyup?), explicitly identify the node we wish to update and the changes we wish to make. Alpine’s syntax on the other hand, just specifies what should happen. This is what is meant by declarative programming.
Updating the paragraph in Vue while simple, would require a new script tag:
new Vue({ el: '#app', data: { name: '' } });
While this might not seem like the end of the world, it highlights the first major gain with Alpine. There is no context-switching. Everything is done right there in the HTML — no need for any additional JavaScript.
Click Events, Boolean Attributes And Toggling Classes
Like with Vue, : serves as a shorthand for x-bind (which binds attributes) and @ is shorthand for x-on (which indicates that Alpine should listen for events).
In the following example, we instantiate a new component using x-data, and set the default value of show to be false. When the button is clicked, we toggle the value of show. When this value is true, we instruct Alpine to append the aria-expanded attribute.
x-bind works differently for classes: we pass in object where the key is the class-name (active in our case) and the value is a boolean expression (show).
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
Hiding And Showing
The syntax showing and hiding is almost identical to Vue.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
This will set a given DOM node to display:none. If you need to remove a DOM element completely, x-if can be used. However, because Alpine.js doesn’t use the Virtual DOM, x-if can only be used on a <template></template> (tag that wraps the element you wish to hide).
Magic Properties
In addition to the above directives, three Magic Properties provide some additional functionality. All of these will be familiar to anyone working in Vue.js.
$el fetches the root component (the thing with the x-data attribute);
$refs allows you to grab a DOM element;
$nextTick ensures expressions are only executed once Alpine has done its thing;
$event can be used to capture a nature browser event.
See the Pen Magic Properties by Phil on CodePen.
See the Pen Magic Properties by Phil on CodePen.
Let’s Build Something Useful
It’s time to build something for the real world. In the interests of brevity I’m going to use Bootstrap for styles, but use Alpine.js for all the JavaScript. The page we’re building is a simple landing page with a contact form displayed inside a modal that submits to some form handler and displays a nice success message. Just the sort of thing a client might ask for and expect pronto!
Initial view (Large preview)
Modal open (Large preview)
Success message (Large preview)
Note: You can view the original markup here.
To make this work, we could add jQuery and Bootstrap.js, but that is quite a bit of overhead for not a lot of functionality. We could probably write it in Vanilla JS, but who wants to do that? Let’s make it work with Alpine.js instead.
First, let’s set a scope and some initial values:
<body class="text-center text-white bg-dark h-100 d-flex flex-column" x-data="{ showModal: false, name: '', email: '', success: false }">
Now, let’s make our button set the showModal value to true:
<button class="btn btn-lg btn-secondary" @click="showModal = true" >Get in touch</button>
When showModal is true, we need to display the modal and add some classes:
<div class="modal fade text-dark" :class="{ 'show d-block': showModal }" x-show="showModal" role="dialog">
Let’s bind the input values to Alpine:
<input type="text" class="form-control" name="name" x-model="name" > <input type="email" class="form-control" name="email" x-model="email" >
And disable the ‘Submit’ button, until those values are set:
<button type="button" class="btn btn-primary" :disabled="!name || !email">Submit</button>
Finally, let’s send data to some kind of asynchronous function, and hide the modal when we’re done:
<button type="button" class="btn btn-primary" :disabled="!name || !email" @click="submitForm({name: name, email: email}).then(() => {showModal = false; success= true;})">Submit</button>
And that’s about it!
See the Pen Something useful built with Alpine.js by Phil on CodePen.
See the Pen Something useful built with Alpine.js by Phil on CodePen.
Just Enough JavaScript
When building websites, I’m increasingly trying to ask myself what would be “just enough JavaScript”? When building a sophisticated web application, that might well be React. But when building a marketing agency site, or something similar, Alpine.js feels like enough. (And even if it’s not, given the similar syntax, switching to Vue.js takes no time at all).
It’s incredibly easy to use (especially if you’ve never used VueJS). It’s tiny (< 6kb gzipped). And it means no more context switching between HTML and JavaScript files.
There are more advanced features that aren’t included in this article and Caleb is constantly adding new features. If you want to find out more, take a look at the official docs on Github.
(ra, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/introducing-alpine-js-a-tiny-javascript-framework/ source https://scpie.tumblr.com/post/611788754623086592
0 notes
laurelkrugerr · 4 years
Text
Introducing Alpine.js: A Tiny JavaScript Framework
About The Author
Phil Smith is a freelance developer based in Brighton, UK. His agency, amillionmonkeys partner with designers, entrepreneurs and agencies to build websites and … More about Phil …
Ever built a website and reached for jQuery, Bootstrap, Vue.js or React to acheive some basic user interaction? Alpine.js is a fraction of the size of these frameworks because it involves no build steps and provides all of the tools you need to build a basic user interface.
Like most developers, I have a bad tendency to over-complicate my workflow, especially if there’s some new hotness on the horizon. Why use CSS when you can use CSS-in-JS? Why use Grunt when you can use Gulp? Why use Gulp when you can use Webpack? Why use a traditional CMS when you can go headless? Every so often though, the new-hotness makes life simpler.
Recently, the rise of utility based tools like Tailwind CSS have done this for CSS, and now Alpine.js promises something similar for JavaScript.
In this article, we’re going to take a closer look at Alpine.js and how it can replace JQuery or larger JavaScript libraries to build interactive websites. If you regularly build sites that require a sprinkling on Javascript to alter the UI based on some user interaction, then this article is for you.
Throughout the article, I refer to Vue.js, but don’t worry if you have no experience of Vue — that is not required. In fact, part of what makes Alpine.js great is that you barely need to know any JavaScript at all.
Now, let’s get started.
What Is Alpine.js?
According to project author Caleb Porzio:
“Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit.”
Let’s unpack that a bit.
Let’s consider a basic UI pattern like Tabs. Our ultimate goal is that when a user clicks on a tab, the tab contents displays. If we come from a PHP background, we could easily achieve this server side. But the page refresh on every tab click isn’t very ‘reactive’.
To create a better experience over the years, developers have reached for jQuery and/or Bootstrap. In that situation, we create an event listener on the tab, and when a user clicks, the event fires and we tell the browser what to do.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
That works. But this style of coding where we tell the browser exactly what to do (imperative coding) quickly gets us in a mess. Imagine if we wanted to disable the button after it has been clicked, or wanted to change the background color of the page. We’d quickly get into some serious spaghetti code.
Developers have solved this issue by reaching for frameworks like Vue, Angular and React. These frameworks allow us to write cleaner code by utilizing the virtual DOM: a kind of mirror of the UI stored in the browser memory. The result is that when you ‘hide’ a DOM element (like a tab) in one of these frameworks; it doesn’t add a display:none; style attribute, but instead it literally disappears from the ‘real’ DOM.
This allows us to write more declarative code that is cleaner and easier to read. But this is at a cost. Typically, the bundle size of these frameworks is large and for those coming from a jQuery background, the learning curve feels incredibly steep. Especially when all you want to do is toggle tabs! And that is where Alpine.js steps in.
Like Vue and React, Alpine.js allows us to write declarative code but it uses the “real” DOM; amending the contents and attributes of the same nodes that you and I might edit when we crack open a text editor or dev-tools. As a result, you can lose the filesize, wizardry and cognitive-load of larger framework but retain the declarative programming methodology. And you get this with no bundler, no build process and no script tag. Just load 6kb of Alpine.js and you’re away!
Alpine.jsJQueryVue.jsReact + React DOMCoding styleDeclarativeImperativeDeclarativeDeclarativeRequires bundlerNoNoNoYesFilesize (GZipped, minified)6.4kb30kb32kb5kb + 36kbDev-ToolsNoNoYesYes
When Should I Reach For Alpine?
For me, Alpine’s strength is in the ease of DOM manipulation. Think of those things you used out of the box with Bootstrap, Alpine.js is great for them. Examples would be:
Showing and hiding DOM nodes under certain conditions,
Binding user input,
Listening for events and altering the UI accordingly,
Appending classes.
You can also use Alpine.js for templating if your data is available in JSON, but let’s save that for another day.
When Should I Look Elsewhere?
If you’re fetching data, or need to carry out additional functions like validation or storing data, you should probably look elsewhere. Larger frameworks also come with dev-tools which can be invaluable when building larger UIs.
From jQuery To Vue To Alpine
Two years ago, Sarah Drasner posted an article on Smashing Magazine, “Replacing jQuery With Vue.js: No Build Step Necessary,” about how Vue could replace jQuery for many projects. That article started me on a journey which led me to use Vue almost every time I build a user interface. Today, we are going to recreate some of her examples with Alpine, which should illustrate its advantages over both jQuery and Vue in certain use cases.
Alpine’s syntax is almost entirely lifted from Vue.js. In total, there are 13 directives. We’ll cover most of them in the following examples.
Getting Started
Like Vue and jQuery, no build process is required. Unlike Vue, Alpine it initializes itself, so there’s no need to create a new instance. Just load Alpine and you’re good to go.
<script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.js" defer></script>
The scope of any given component is declared using the x-data directive. This kicks things off and sets some default values if required:
<div x-data="{ foo: 'bar' }">...</div>
Capturing User Inputs
x-model allow us to keep any input element in sync with the values set using x-data. In the following example, we set the name value to an empty string (within the form tag). Using x-model, we bind this value to the input field. By using x-text, we inject the value into the innerText of the paragraph element.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
This highlights the key differences with Alpine.js and both jQuery and Vue.js.
Updating the paragraph tag in jQuery would require us to listen for specific events (keyup?), explicitly identify the node we wish to update and the changes we wish to make. Alpine’s syntax on the other hand, just specifies what should happen. This is what is meant by declarative programming.
Updating the paragraph in Vue while simple, would require a new script tag:
new Vue({ el: '#app', data: { name: '' } });
While this might not seem like the end of the world, it highlights the first major gain with Alpine. There is no context-switching. Everything is done right there in the HTML — no need for any additional JavaScript.
Click Events, Boolean Attributes And Toggling Classes
Like with Vue, : serves as a shorthand for x-bind (which binds attributes) and @ is shorthand for x-on (which indicates that Alpine should listen for events).
In the following example, we instantiate a new component using x-data, and set the default value of show to be false. When the button is clicked, we toggle the value of show. When this value is true, we instruct Alpine to append the aria-expanded attribute.
x-bind works differently for classes: we pass in object where the key is the class-name (active in our case) and the value is a boolean expression (show).
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
Hiding And Showing
The syntax showing and hiding is almost identical to Vue.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
This will set a given DOM node to display:none. If you need to remove a DOM element completely, x-if can be used. However, because Alpine.js doesn’t use the Virtual DOM, x-if can only be used on a <template></template> (tag that wraps the element you wish to hide).
Magic Properties
In addition to the above directives, three Magic Properties provide some additional functionality. All of these will be familiar to anyone working in Vue.js.
$el fetches the root component (the thing with the x-data attribute);
$refs allows you to grab a DOM element;
$nextTick ensures expressions are only executed once Alpine has done its thing;
$event can be used to capture a nature browser event.
See the Pen Magic Properties by Phil on CodePen.
See the Pen Magic Properties by Phil on CodePen.
Let’s Build Something Useful
It’s time to build something for the real world. In the interests of brevity I’m going to use Bootstrap for styles, but use Alpine.js for all the JavaScript. The page we’re building is a simple landing page with a contact form displayed inside a modal that submits to some form handler and displays a nice success message. Just the sort of thing a client might ask for and expect pronto!
Initial view (Large preview)
Modal open (Large preview)
Success message (Large preview)
Note: You can view the original markup here.
To make this work, we could add jQuery and Bootstrap.js, but that is quite a bit of overhead for not a lot of functionality. We could probably write it in Vanilla JS, but who wants to do that? Let’s make it work with Alpine.js instead.
First, let’s set a scope and some initial values:
<body class="text-center text-white bg-dark h-100 d-flex flex-column" x-data="{ showModal: false, name: '', email: '', success: false }">
Now, let’s make our button set the showModal value to true:
<button class="btn btn-lg btn-secondary" @click="showModal = true" >Get in touch</button>
When showModal is true, we need to display the modal and add some classes:
<div class="modal fade text-dark" :class="{ 'show d-block': showModal }" x-show="showModal" role="dialog">
Let’s bind the input values to Alpine:
<input type="text" class="form-control" name="name" x-model="name" > <input type="email" class="form-control" name="email" x-model="email" >
And disable the ‘Submit’ button, until those values are set:
<button type="button" class="btn btn-primary" :disabled="!name || !email">Submit</button>
Finally, let’s send data to some kind of asynchronous function, and hide the modal when we’re done:
<button type="button" class="btn btn-primary" :disabled="!name || !email" @click="submitForm({name: name, email: email}).then(() => {showModal = false; success= true;})">Submit</button>
And that’s about it!
See the Pen Something useful built with Alpine.js by Phil on CodePen.
See the Pen Something useful built with Alpine.js by Phil on CodePen.
Just Enough JavaScript
When building websites, I’m increasingly trying to ask myself what would be “just enough JavaScript”? When building a sophisticated web application, that might well be React. But when building a marketing agency site, or something similar, Alpine.js feels like enough. (And even if it’s not, given the similar syntax, switching to Vue.js takes no time at all).
It’s incredibly easy to use (especially if you’ve never used VueJS). It’s tiny (< 6kb gzipped). And it means no more context switching between HTML and JavaScript files.
There are more advanced features that aren’t included in this article and Caleb is constantly adding new features. If you want to find out more, take a look at the official docs on Github.
(ra, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/introducing-alpine-js-a-tiny-javascript-framework/ source https://scpie1.blogspot.com/2020/03/introducing-alpinejs-tiny-javascript.html
0 notes
scpie · 4 years
Text
Introducing Alpine.js: A Tiny JavaScript Framework
About The Author
Phil Smith is a freelance developer based in Brighton, UK. His agency, amillionmonkeys partner with designers, entrepreneurs and agencies to build websites and … More about Phil …
Ever built a website and reached for jQuery, Bootstrap, Vue.js or React to acheive some basic user interaction? Alpine.js is a fraction of the size of these frameworks because it involves no build steps and provides all of the tools you need to build a basic user interface.
Like most developers, I have a bad tendency to over-complicate my workflow, especially if there’s some new hotness on the horizon. Why use CSS when you can use CSS-in-JS? Why use Grunt when you can use Gulp? Why use Gulp when you can use Webpack? Why use a traditional CMS when you can go headless? Every so often though, the new-hotness makes life simpler.
Recently, the rise of utility based tools like Tailwind CSS have done this for CSS, and now Alpine.js promises something similar for JavaScript.
In this article, we’re going to take a closer look at Alpine.js and how it can replace JQuery or larger JavaScript libraries to build interactive websites. If you regularly build sites that require a sprinkling on Javascript to alter the UI based on some user interaction, then this article is for you.
Throughout the article, I refer to Vue.js, but don’t worry if you have no experience of Vue — that is not required. In fact, part of what makes Alpine.js great is that you barely need to know any JavaScript at all.
Now, let’s get started.
What Is Alpine.js?
According to project author Caleb Porzio:
“Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit.”
Let’s unpack that a bit.
Let’s consider a basic UI pattern like Tabs. Our ultimate goal is that when a user clicks on a tab, the tab contents displays. If we come from a PHP background, we could easily achieve this server side. But the page refresh on every tab click isn’t very ‘reactive’.
To create a better experience over the years, developers have reached for jQuery and/or Bootstrap. In that situation, we create an event listener on the tab, and when a user clicks, the event fires and we tell the browser what to do.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
See the Pen Showing / hiding with jQuery by Phil on CodePen.
That works. But this style of coding where we tell the browser exactly what to do (imperative coding) quickly gets us in a mess. Imagine if we wanted to disable the button after it has been clicked, or wanted to change the background color of the page. We’d quickly get into some serious spaghetti code.
Developers have solved this issue by reaching for frameworks like Vue, Angular and React. These frameworks allow us to write cleaner code by utilizing the virtual DOM: a kind of mirror of the UI stored in the browser memory. The result is that when you ‘hide’ a DOM element (like a tab) in one of these frameworks; it doesn’t add a display:none; style attribute, but instead it literally disappears from the ‘real’ DOM.
This allows us to write more declarative code that is cleaner and easier to read. But this is at a cost. Typically, the bundle size of these frameworks is large and for those coming from a jQuery background, the learning curve feels incredibly steep. Especially when all you want to do is toggle tabs! And that is where Alpine.js steps in.
Like Vue and React, Alpine.js allows us to write declarative code but it uses the “real” DOM; amending the contents and attributes of the same nodes that you and I might edit when we crack open a text editor or dev-tools. As a result, you can lose the filesize, wizardry and cognitive-load of larger framework but retain the declarative programming methodology. And you get this with no bundler, no build process and no script tag. Just load 6kb of Alpine.js and you’re away!
Alpine.js JQuery Vue.js React + React DOM Coding style Declarative Imperative Declarative Declarative Requires bundler No No No Yes Filesize (GZipped, minified) 6.4kb 30kb 32kb 5kb + 36kb Dev-Tools No No Yes Yes
When Should I Reach For Alpine?
For me, Alpine’s strength is in the ease of DOM manipulation. Think of those things you used out of the box with Bootstrap, Alpine.js is great for them. Examples would be:
Showing and hiding DOM nodes under certain conditions,
Binding user input,
Listening for events and altering the UI accordingly,
Appending classes.
You can also use Alpine.js for templating if your data is available in JSON, but let’s save that for another day.
When Should I Look Elsewhere?
If you’re fetching data, or need to carry out additional functions like validation or storing data, you should probably look elsewhere. Larger frameworks also come with dev-tools which can be invaluable when building larger UIs.
From jQuery To Vue To Alpine
Two years ago, Sarah Drasner posted an article on Smashing Magazine, “Replacing jQuery With Vue.js: No Build Step Necessary,” about how Vue could replace jQuery for many projects. That article started me on a journey which led me to use Vue almost every time I build a user interface. Today, we are going to recreate some of her examples with Alpine, which should illustrate its advantages over both jQuery and Vue in certain use cases.
Alpine’s syntax is almost entirely lifted from Vue.js. In total, there are 13 directives. We’ll cover most of them in the following examples.
Getting Started
Like Vue and jQuery, no build process is required. Unlike Vue, Alpine it initializes itself, so there’s no need to create a new instance. Just load Alpine and you’re good to go.
<script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.js" defer></script>
The scope of any given component is declared using the x-data directive. This kicks things off and sets some default values if required:
<div x-data="{ foo: 'bar' }">...</div>
Capturing User Inputs
x-model allow us to keep any input element in sync with the values set using x-data. In the following example, we set the name value to an empty string (within the form tag). Using x-model, we bind this value to the input field. By using x-text, we inject the value into the innerText of the paragraph element.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
See the Pen Capturing user input with Alpine.js by Phil on CodePen.
This highlights the key differences with Alpine.js and both jQuery and Vue.js.
Updating the paragraph tag in jQuery would require us to listen for specific events (keyup?), explicitly identify the node we wish to update and the changes we wish to make. Alpine’s syntax on the other hand, just specifies what should happen. This is what is meant by declarative programming.
Updating the paragraph in Vue while simple, would require a new script tag:
new Vue({ el: '#app', data: { name: '' } });
While this might not seem like the end of the world, it highlights the first major gain with Alpine. There is no context-switching. Everything is done right there in the HTML — no need for any additional JavaScript.
Click Events, Boolean Attributes And Toggling Classes
Like with Vue, : serves as a shorthand for x-bind (which binds attributes) and @ is shorthand for x-on (which indicates that Alpine should listen for events).
In the following example, we instantiate a new component using x-data, and set the default value of show to be false. When the button is clicked, we toggle the value of show. When this value is true, we instruct Alpine to append the aria-expanded attribute.
x-bind works differently for classes: we pass in object where the key is the class-name (active in our case) and the value is a boolean expression (show).
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
See the Pen Click Events, Boolean Attributes and Toggling Classes with Alpine.js by Phil on CodePen.
Hiding And Showing
The syntax showing and hiding is almost identical to Vue.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
See the Pen Showing / hiding with Alpine.js by Phil on CodePen.
This will set a given DOM node to display:none. If you need to remove a DOM element completely, x-if can be used. However, because Alpine.js doesn’t use the Virtual DOM, x-if can only be used on a <template></template> (tag that wraps the element you wish to hide).
Magic Properties
In addition to the above directives, three Magic Properties provide some additional functionality. All of these will be familiar to anyone working in Vue.js.
$el fetches the root component (the thing with the x-data attribute);
$refs allows you to grab a DOM element;
$nextTick ensures expressions are only executed once Alpine has done its thing;
$event can be used to capture a nature browser event.
See the Pen Magic Properties by Phil on CodePen.
See the Pen Magic Properties by Phil on CodePen.
Let’s Build Something Useful
It’s time to build something for the real world. In the interests of brevity I’m going to use Bootstrap for styles, but use Alpine.js for all the JavaScript. The page we’re building is a simple landing page with a contact form displayed inside a modal that submits to some form handler and displays a nice success message. Just the sort of thing a client might ask for and expect pronto!
Initial view (Large preview)
Modal open (Large preview)
Success message (Large preview)
Note: You can view the original markup here.
To make this work, we could add jQuery and Bootstrap.js, but that is quite a bit of overhead for not a lot of functionality. We could probably write it in Vanilla JS, but who wants to do that? Let’s make it work with Alpine.js instead.
First, let’s set a scope and some initial values:
<body class="text-center text-white bg-dark h-100 d-flex flex-column" x-data="{ showModal: false, name: '', email: '', success: false }">
Now, let’s make our button set the showModal value to true:
<button class="btn btn-lg btn-secondary" @click="showModal = true" >Get in touch</button>
When showModal is true, we need to display the modal and add some classes:
<div class="modal fade text-dark" :class="{ 'show d-block': showModal }" x-show="showModal" role="dialog">
Let’s bind the input values to Alpine:
<input type="text" class="form-control" name="name" x-model="name" > <input type="email" class="form-control" name="email" x-model="email" >
And disable the ‘Submit’ button, until those values are set:
<button type="button" class="btn btn-primary" :disabled="!name || !email">Submit</button>
Finally, let’s send data to some kind of asynchronous function, and hide the modal when we’re done:
<button type="button" class="btn btn-primary" :disabled="!name || !email" @click="submitForm({name: name, email: email}).then(() => {showModal = false; success= true;})">Submit</button>
And that’s about it!
See the Pen Something useful built with Alpine.js by Phil on CodePen.
See the Pen Something useful built with Alpine.js by Phil on CodePen.
Just Enough JavaScript
When building websites, I’m increasingly trying to ask myself what would be “just enough JavaScript”? When building a sophisticated web application, that might well be React. But when building a marketing agency site, or something similar, Alpine.js feels like enough. (And even if it’s not, given the similar syntax, switching to Vue.js takes no time at all).
It’s incredibly easy to use (especially if you’ve never used VueJS). It’s tiny (< 6kb gzipped). And it means no more context switching between HTML and JavaScript files.
There are more advanced features that aren’t included in this article and Caleb is constantly adding new features. If you want to find out more, take a look at the official docs on Github.
(ra, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/introducing-alpine-js-a-tiny-javascript-framework/
0 notes
jessicakehoe · 5 years
Text
“Baby, It’s Cold Outside”: To Ban or Not to Ban?
The ranks here at FASHION are not filled with men. Shocking, right? But there are one or two (there are actually, literally, two). Naturally, when a question about male/female dynamics arises it’s only fair that one of them stand in for the members of his gender and provide some insight. Our last topic of conversation was about the social media furor over Ruby Rose being cast as lesbian superhero Kate Kane aka Batwoman and today we’re talking about the controversy surrounding cult Christmas hit “Baby, It’s Cold Outside.” Two of our staffers—from the men’s corner, Greg Hudson, and from the women’s, Pahull Bains—talk it out.
PB: Yesterday, when two of our colleagues began discussing the “Baby, It’s Cold Outside” brouhaha I realized I’d never actually listened to the song in full. Growing up in India, it wasn’t something we heard regularly around the holidays (shocker, I know) so I was unaware of its baggage. But I knew I had to give it a listen when I heard it described as “rapey.”
GH: I think we can all agree that one of the most beautiful aspects of cultural exchange is sharing and comparing problematic or offensive pop culture. It warms my heart that we were able to share with you this Ode to Toxic Masculinity: The Holidays Edition.
Before we delve into all the ways that song is icky, I think it’s interesting to note how this issue has been growing each successive Christmas. I remember a few years ago, it felt like calling out “Baby, It’s Cold Outside” was a unique observation, albeit one that several hundred people were all having independently. It’s like the Die Hard-as-a-Christmas-Movie debate, which seemed to have hit its peak last year. I think it’s interesting that a song that has been a bit gross for, like 70 years, is just now really entering the popular consciousness.
Hot take: this is all happening this year because of Kavanaugh’s Supreme Court hearings.
But, anyway: yes, the song. Last week, it made news by being removed from some radio stations owned by Canadian broadcasters like CBC and Bell Media because of the mild outrage. Then, this week, because of the backlash to the backlash (there’s always backlash to backlash), CBC has put it back up. Now that you’ve finally heard the song in its entirety, what do you think about it?
PB: Initial verdict: CRINGE. The woman’s voice is completely negated throughout the song/conversation. She’s repeatedly ignored, patronized and dismissed, while the man is clearly the dominating force calling the shots. By depicting such a skewed power dynamic in which a man refuses to take no for an answer, it’s propagating dangerous ideas about consent. That said, I think we’d be remiss not acknowledge the era in which this song was written. In the 1940s a woman’s voice had very little power and women very little agency or independence. They were expected to be coy and demure, and let a man “take charge” and never, ever make the first move. So the song is clearly a reflection of the societal mores of the time, hugely problematic as they were.
On a second listen, though, my strong initial reaction was tempered a bit. If you listen to all of the woman’s objections, they’re largely of the “what will people say” variety: “the neighbours might think,” “I ought to say no, at least I’ll say that I tried,” and “there’s bound to be talk tomorrow.” Again, this is an era in which a single woman drinking alone with a single man was bound to raise all sorts of eyebrows. So most of her reluctance seems to stem from a desire to protect her reputation, rather than, you know, a desire to get away from him. What do you think?
GH: That’s a really good point! And by good, I mean, it’s a new point that I’d never noticed before. See, because I always read her stated objections as the excuses she chose to say in order to be the most persuasive, while still being relatively inoffensive. Like, she can’t just say, “No. I don’t want to make out. I want to go home. Back off, creep.” Because, ha! Who cares what a woman wants. But! If that woman makes it about more than just herself, ie. worried mothers, gossipy neighbours, maybe—just maybe—she’ll convince the dude that she needs to leave, despite the cold.
Actually, I realize it’s kind of like “I Saw Mommy Kissing Santa Claus.” That song, despite its adulterous undertones, is about a mom and a dad kissing while the dad is dressed as Santa. It’s never explained in the song because the songwriters assume the listeners will know (spoiler alert) that Santa isn’t real. But as a kid, because Santa was real, the Mommy was just a cheater. It’s all about the assumptions you have going in.
From our modern perspective, we can’t help but hear the woman in “Baby, It’s Cold Outside” as endangered. We assume she doesn’t want to be there, hence her always wanting to leave. But, the piece, which was written by a real life couple, wasn’t meant to carry that kind of baggage. The songwriters would likely have assumed that listeners would believe that the couple was just being coy. That they both really wanted to stay together but were pretending to have doubts. Granted, that people at the time wouldn’t assume a date rape was happening represents its own problem.
PB: Right. I read a couple of interviews the songwriter’s kids have done in recent years, always around the holidays when, like clockwork, the debate rears its eternal head. “They’re really equal roles. No one is really the aggressor,” Frank Loesser’s son told Vanity Fair in 2016. “It was a flirtatious, wonderful, sexy number between people who like each other. It really wasn’t anything but that.”
That said, when people hear a song on the radio, they don’t immediately rush to Google it and get the whole backstory. Their assumptions and opinions will be based on an intuitive response. And that gut response is naturally shaped by the context of the world we live in. Last week, Loesser’s daughter told NBC News that the song was beloved until “Bill Cosby ruined it for everybody.” Well, lets face it: the world is changing. Why should we have to take off our new, Cosby-coloured glasses in order to enjoy a song?
Which brings me to the inflammatory question fuelling this debate year after year: should the song be banned?
I think it’s important to acknowledge just how much pop culture shapes our society. I mean, a generation of young boys listened to this song, which by all reports, seems to have gone the 1940s-equivalent of viral. (It also won an Oscar!) Which means a generation of boys grew up to be men who believed that getting a ‘yes’ out of a woman was just a matter of pushing long enough to invalidate all her hesitations. Whether or not that’s what the song set out to do is besides the point; if that overwhelmingly seems to be the takeaway then that is the takeaway.
I don’t know if banning it is the answer though because a) honestly, which young kid these days is modelling his behaviour on a classic hit from the ‘40s that he probably only hears once a year? b) there are far more pernicious pieces of pop culture out there that deserve an irate debate more than this one (I’m looking at you, R Kelly) and c) I’m not in favour of blanket bans in general. If there are parents out there with an aversion to the song, change the channel. Don’t play it for your kids on Christmas. TALK to your kids about consent.
But if a radio station doesn’t want to play the song, I’m totally fine with it. That’s their executives’ decision. If a nightclub doesn’t want to play R Kelly, that’s their choice. If a film festival doesn’t want to screen a film by a problematic director, again, their choice. And I respect it.
Which side of the ‘to ban or not to ban’ debate do you fall on?
GH: I agree. Of course, it’s easy for me to say that since I’ve never been in a situation where I’ve wanted to leave a woman’s house only to be ignored (and potentially drugged). Well, actually, I have been in that situation, but it was different since there was no potential for physical violence. But I digress.
The truth is, this is one of those issues where both sides seem disproportionately passionate about their cause. Will a Christmas song really influence anyone’s behaviour (aside from going to bed early and choosing not to cry or pout)? No. But will Christmas and Freedom of Speech be ruined if this one song is forgotten? No! A Christmas song—let alone a controversy surrounding one—is basically privilege in action. There are, as you say, more important things to worry about. And until I do something to, like, help the poor and hungry at Christmas, I’m not going to pretend that fighting against problematic songs is really making the world better. And besides, as you say, there’s a teaching opportunity here.
Like how “I Saw Mommy Kissing Santa Claus” taught me about polyamory.
The post “Baby, It’s Cold Outside”: To Ban or Not to Ban? appeared first on FASHION Magazine.
“Baby, It’s Cold Outside”: To Ban or Not to Ban? published first on https://borboletabags.tumblr.com/
0 notes
lindyhunt · 5 years
Text
“Baby, It’s Cold Outside”: To Ban or Not to Ban?
The ranks here at FASHION are not filled with men. Shocking, right? But there are one or two (there are actually, literally, two). Naturally, when a question about male/female dynamics arises it’s only fair that one of them stand in for the members of his gender and provide some insight. Our last topic of conversation was about the social media furor over Ruby Rose being cast as lesbian superhero Kate Kane aka Batwoman and today we’re talking about the controversy surrounding cult Christmas hit “Baby, It’s Cold Outside.” Two of our staffers—from the men’s corner, Greg Hudson, and from the women’s, Pahull Bains—talk it out.
PB: Yesterday, when two of our colleagues began discussing the “Baby, It’s Cold Outside” brouhaha I realized I’d never actually listened to the song in full. Growing up in India, it wasn’t something we heard regularly around the holidays (shocker, I know) so I was unaware of its baggage. But I knew I had to give it a listen when I heard it described as “rapey.”
GH: I think we can all agree that one of the most beautiful aspects of cultural exchange is sharing and comparing problematic or offensive pop culture. It warms my heart that we were able to share with you this Ode to Toxic Masculinity: The Holidays Edition.
Before we delve into all the ways that song is icky, I think it’s interesting to note how this issue has been growing each successive Christmas. I remember a few years ago, it felt like calling out “Baby, It’s Cold Outside” was a unique observation, albeit one that several hundred people were all having independently. It’s like the Die Hard-as-a-Christmas-Movie debate, which seemed to have hit its peak last year. I think it’s interesting that a song that has been a bit gross for, like 70 years, is just now really entering the popular consciousness.
Hot take: this is all happening this year because of Kavanaugh’s Supreme Court hearings.
But, anyway: yes, the song. Last week, it made news by being removed from some radio stations owned by Canadian broadcasters like CBC and Bell Media because of the mild outrage. Then, this week, because of the backlash to the backlash (there’s always backlash to backlash), CBC has put it back up. Now that you’ve finally heard the song in its entirety, what do you think about it?
PB: Initial verdict: CRINGE. The woman’s voice is completely negated throughout the song/conversation. She’s repeatedly ignored, patronized and dismissed, while the man is clearly the dominating force calling the shots. By depicting such a skewed power dynamic in which a man refuses to take no for an answer, it’s propagating dangerous ideas about consent. That said, I think we’d be remiss not acknowledge the era in which this song was written. In the 1940s a woman’s voice had very little power and women very little agency or independence. They were expected to be coy and demure, and let a man “take charge” and never, ever make the first move. So the song is clearly a reflection of the societal mores of the time, hugely problematic as they were.
On a second listen, though, my strong initial reaction was tempered a bit. If you listen to all of the woman’s objections, they’re largely of the “what will people say” variety: “the neighbours might think,” “I ought to say no, at least I’ll say that I tried,” and “there’s bound to be talk tomorrow.” Again, this is an era in which a single woman drinking alone with a single man was bound to raise all sorts of eyebrows. So most of her reluctance seems to stem from a desire to protect her reputation, rather than, you know, a desire to get away from him. What do you think?
GH: That’s a really good point! And by good, I mean, it’s a new point that I’d never noticed before. See, because I always read her stated objections as the excuses she chose to say in order to be the most persuasive, while still being relatively inoffensive. Like, she can’t just say, “No. I don’t want to make out. I want to go home. Back off, creep.” Because, ha! Who cares what a woman wants. But! If that woman makes it about more than just herself, ie. worried mothers, gossipy neighbours, maybe—just maybe—she’ll convince the dude that she needs to leave, despite the cold.
Actually, I realize it’s kind of like “I Saw Mommy Kissing Santa Claus.” That song, despite its adulterous undertones, is about a mom and a dad kissing while the dad is dressed as Santa. It’s never explained in the song because the songwriters assume the listeners will know (spoiler alert) that Santa isn’t real. But as a kid, because Santa was real, the Mommy was just a cheater. It’s all about the assumptions you have going in.
From our modern perspective, we can’t help but hear the woman in “Baby, It’s Cold Outside” as endangered. We assume she doesn’t want to be there, hence her always wanting to leave. But, the piece, which was written by a real life couple, wasn’t meant to carry that kind of baggage. The songwriters would likely have assumed that listeners would believe that the couple was just being coy. That they both really wanted to stay together but were pretending to have doubts. Granted, that people at the time wouldn’t assume a date rape was happening represents its own problem.
PB: Right. I read a couple of interviews the songwriter’s kids have done in recent years, always around the holidays when, like clockwork, the debate rears its eternal head. “They’re really equal roles. No one is really the aggressor,” Frank Loesser’s son told Vanity Fair in 2016. “It was a flirtatious, wonderful, sexy number between people who like each other. It really wasn’t anything but that.”
That said, when people hear a song on the radio, they don’t immediately rush to Google it and get the whole backstory. Their assumptions and opinions will be based on an intuitive response. And that gut response is naturally shaped by the context of the world we live in. Last week, Loesser’s daughter told NBC News that the song was beloved until “Bill Cosby ruined it for everybody.” Well, lets face it: the world is changing. Why should we have to take off our new, Cosby-coloured glasses in order to enjoy a song?
Which brings me to the inflammatory question fuelling this debate year after year: should the song be banned?
I think it’s important to acknowledge just how much pop culture shapes our society. I mean, a generation of young boys listened to this song, which by all reports, seems to have gone the 1940s-equivalent of viral. (It also won an Oscar!) Which means a generation of boys grew up to be men who believed that getting a ‘yes’ out of a woman was just a matter of pushing long enough to invalidate all her hesitations. Whether or not that’s what the song set out to do is besides the point; if that overwhelmingly seems to be the takeaway then that is the takeaway.
I don’t know if banning it is the answer though because a) honestly, which young kid these days is modelling his behaviour on a classic hit from the ‘40s that he probably only hears once a year? b) there are far more pernicious pieces of pop culture out there that deserve an irate debate more than this one (I’m looking at you, R Kelly) and c) I’m not in favour of blanket bans in general. If there are parents out there with an aversion to the song, change the channel. Don’t play it for your kids on Christmas. TALK to your kids about consent.
But if a radio station doesn’t want to play the song, I’m totally fine with it. That’s their executives’ decision. If a nightclub doesn’t want to play R Kelly, that’s their choice. If a film festival doesn’t want to screen a film by a problematic director, again, their choice. And I respect it.
Which side of the ‘to ban or not to ban’ debate do you fall on?
GH: I agree. Of course, it’s easy for me to say that since I’ve never been in a situation where I’ve wanted to leave a woman’s house only to be ignored (and potentially drugged). Well, actually, I have been in that situation, but it was different since there was no potential for physical violence. But I digress.
The truth is, this is one of those issues where both sides seem disproportionately passionate about their cause. Will a Christmas song really influence anyone’s behaviour (aside from going to bed early and choosing not to cry or pout)? No. But will Christmas and Freedom of Speech be ruined if this one song is forgotten? No! A Christmas song—let alone a controversy surrounding one—is basically privilege in action. There are, as you say, more important things to worry about. And until I do something to, like, help the poor and hungry at Christmas, I’m not going to pretend that fighting against problematic songs is really making the world better. And besides, as you say, there’s a teaching opportunity here.
Like how “I Saw Mommy Kissing Santa Claus” taught me about polyamory.
0 notes