2 पॉइंट द्वारा GN⁺ 2025-01-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • CSS Flexbox Playground एक सीखने का टूल है जिसमें Flexbox properties को real time में बदलकर layout में होने वाले बदलाव देखे जा सकते हैं
  • controls को adjust करने पर flex settings का screen layout पर असर तुरंत compare किया जा सकता है
  • डिफ़ॉल्ट उदाहरण display: flex, flex-direction: row, justify-content: space-around, align-items: flex-start, flex-wrap: nowrap के संयोजन से शुरू होता है
  • स्क्रीन पर 1 से 5 तक के items settings बदलने के अनुसार move करते हैं, जिससे layout result को आँखों से आसानी से समझा जा सकता है
  • generate हुआ CSS code copy किया जा सकता है, इसलिए प्रयोग की गई settings को असली code में ले जाना आसान है

real time Flexbox प्रयोग टूल

  • CSS Flexbox Playground, Flexbox properties सीखने और उन पर प्रयोग करने के लिए एक interactive टूल है
  • controls को adjust करने पर layout में बदलाव real time में दिखाई देते हैं
  • प्रयोग के नतीजे के रूप में generate हुआ CSS code copy किया जा सकता है

डिफ़ॉल्ट उदाहरण सेटिंग

  • उदाहरण .container setting में नीचे दिया गया CSS इस्तेमाल होता है
.container {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}
  • स्क्रीन पर 1, 2, 3, 4, 5 items दिखते हैं, जिनसे Flexbox layout result को देखा जा सकता है

1 टिप्पणियां

 
GN⁺ 2025-01-06
Hacker News की राय
  • Flexbox अपने आप में सरल और तार्किक है, लेकिन properties और values के नाम इतने committee-style में रखे गए हैं कि वे intuitive नहीं लगते
    justify-content और align-items में कौन क्या है, यह याद रखने की कोशिश करते-करते आखिरकार हार मान लेता हूँ, और बस अलग-अलग चीज़ें बदलकर देखता रहता हूँ जब तक काम न हो जाए

    • हर बार CSS-Tricks Flexbox guide https://css-tricks.com/snippets/css/a-guide-to-flexbox/ देखनी पड़ती है
      Grid के लिए भी ऐसी ही एक guide है, और वह भी शानदार है
    • Flexbox में box के अंदर box, content box को भरे या box content को wrap करे—इसके लिए कौन-सी settings चाहिए, यह याद रखना बेहद मुश्किल है
      खासकर SPA में जब boxes को screen भरनी हो लेकिन overflow न करना हो, तब यह बहुत महत्वपूर्ण होता है। आखिर में इधर-उधर min-width: 0 जैसी बिल्कुल non-intuitive settings डालनी पड़ती हैं, फिर कुछ और चीज़ें छेड़ने पर किसी तरह काम बन जाता है
      लगता है कि इन सबको cover करने वाली कुछ CSS classes बनाई जा सकती हैं, लेकिन अभी तक हर case पर लागू होने वाला हल नहीं मिला
    • Chrome CSS inspector में display: flex rule के पास वाला icon दबाने पर कई Flexbox properties icons के रूप में visualize हो जाती हैं, और click करके तुरंत set भी की जा सकती हैं
      practically हर page एक playground बन जाता है
    • यह दिलचस्प है कि Tailwind ने इसे और ज्यादा confusing बना दिया
      justify-content: center को justify-center और align-items: center को items-center कहना—समझ नहीं आता ऐसा क्यों किया
    • justify-content का नाम main-axis और align-items का नाम cross-axis होना चाहिए था
      यह समझ में आ जाए तो पूरा Flexbox आसान हो जाता है
  • यह बात पहले भी कई बार आ चुकी है, लेकिन मैं Flexbox Froggy https://flexboxfroggy.com/ की सिफारिश करता रहा हूँ और दूसरे लोगों ने भी इसे जल्दी सीख लिया
    CSS Grid सीखने के लिए https://cssgridgarden.com/ भी अच्छा है

    • cssgridgarden का gamification पसंद आया
      यह बच्चों के लिए बने https://www.codemonkey.com/ जैसा लगता है
    • OP की तरह ही Flexbox के लिए एक और bookmarked site https://flexbox.tech/ है
      Bootstrap code बनाने के लिए https://build.layoutit.com/ उपयोगी है, और CSS Grid के लिए https://grid.layoutit.com/ है। बस अफसोस यह है कि पहला वाला Bootstrap 5 नहीं, सिर्फ Bootstrap 4 तक support करता है
    • flexboxfroggy इस्तेमाल किया है; concept अच्छा है और implementation भी बढ़िया है, लेकिन syntax autocomplete की कमी काफी खलती है
  • Josh की guide https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/ ज़ोरदार सिफारिश के लायक है
    यह flex-basis, auto margins, min-width जैसी advanced pitfalls और tips को विस्तार से कवर करती है

    • जो कुछ मैंने पढ़ा है, उसमें यह सबसे बेहतरीन में से थी
      मुझे लगता था कि मैं Flexbox और Tailwind CSS components को काफी अच्छी तरह जानता हूँ, लेकिन इस लेख ने theoretical foundation की कमी को अच्छी तरह पूरा किया
  • यह एक अच्छा playground है
    कुछ साल पहले मैंने अंत में इसी तरह का playground जोड़कर एक interactive guide बनाई थी: https://lik.ai/guides/an-interactive-guide-to-flexbox/
    कभी-कभी याद ताज़ा करने में यह काम आई

  • अब 2025 आ चुका है, 2 साल और 3 tutorials बीत गए, फिर भी मैं अभी तक Flexbox ठीक से इस्तेमाल नहीं कर पाता
    https://flexboxfroggy.com/ से भी खास मदद नहीं मिली

    • कई साल Flexbox इस्तेमाल करने के बाद समझ आया कि Flexbox, USB-A plug लगाने जैसा है
      justify और align पहली कोशिश में हमेशा उल्टे पड़ते हैं
    • समझ नहीं आता इसे याद रखना इतना मुश्किल क्यों है
      CSS float layouts सहित तमाम चीज़ें सालों तक याद रहती हैं, लेकिन Flexbox अगर कुछ महीनों तक न इस्तेमाल करूँ तो उसका 80% भूल जाता हूँ, और फिर शुरू से पढ़ना पड़ता है और playground में समय लगाना पड़ता है
      समस्या यह है कि property names बहुत ज्यादा हैं, और उनमें से कई intuitive नहीं हैं या सीधे गलत नाम जैसे लगते हैं। लगता है कि एक-दो अक्षरों वाले symbolic names भी रखे होते तो शायद उतना ही ठीक रहता
    • flexboxfroggy के बारे में जानता हूँ, लेकिन पढ़ने-लिखने की बजाय “खेलते हुए” सीखना मुझे ज्यादा पसंद है, इसलिए वह site मेरे लिए उपयोगी नहीं थी
      उम्मीद है यह tool मदद करेगा, और अगर कुछ छूटा हो तो लोग बताएँ
  • इस property का नाम justify-content और align-items क्यों रखा गया होगा?
    main-axis-arrangement और cross-axis-alignment ज़्यादा समझ में आने वाले नाम नहीं होते क्या?

    • कोई न कोई explanation तो होगा, लेकिन कुल मिलाकर CSS properties में बहुत-सी चीज़ें confusing और non-intuitive हैं
      color, text-align, position: absolute और position: fixed जैसी चीज़ें भी; absolute भी तकनीकी रूप से अब भी relative ही है
    • discussion के नज़रिए से देखें तो ये नाम Grid और Flexbox दोनों पर फिट बैठते हैं, और justify-items, justify-self जैसी naming convention से भी मेल खाते हैं, इसलिए consistency तो है
      फिर भी align-content अभी भी confuse करता है
    • grid-template shorthand में y-axis पहले लिखना भी confusing है: y1 / x1 / y2 / x2
      ऊपर से यह 0 से शुरू भी नहीं होता, इसलिए मैं इसे हमेशा भूल जाता हूँ
    • समझ नहीं आता कि Google की search capability इसलिए खराब हो गई है क्योंकि वह LLM से Encanto 2 के spoilers बताने में ज़्यादा व्यस्त है, या फिर यह हैरानी वाजिब है कि ऐसा Tailwind plugin अभी तक मौजूद नहीं है
      ऐसा Tailwind alias plugin जल्दी से बनाया जा सकता है, जो cross-axis-center को align-items: center से और main-axis-between को justify-content: space-between से map कर दे
    • मैंने कभी confuse नहीं किया, क्योंकि मैं यह mnemonic इस्तेमाल करता हूँ कि “मेरी भाषा में text को justify करना horizontal direction में होता है”
      हाँ, इसे बदला जा सकता है, लेकिन Flexbox के default behavior के लिए यह mnemonic काम कर जाता है
  • Flexbox सीखते समय properties ढूँढने के लिए मैंने एक cheatsheet बनाई थी
    यह दूसरों के लिए भी उपयोगी हो सकती है: https://darekkay.com/flexbox-cheatsheet/

    • यह अच्छा है कि कुछ चुने बिना भी effect तुरंत दिख जाता है, और MDN links जुड़े होना भी मुझे पसंद आया
  • जल्दी देखने लायक visual cheatsheet के तौर पर यह अच्छी है, लेकिन आखिरकार इसे अलग-अलग projects में इस्तेमाल करते-करते ही आदत बनती है
    syntax ज़्यादातर self-explanatory है, लेकिन row और column इसका अपवाद हैं
    Flexbox या Grid के ज़्यादातर हिस्सों में मैं कभी बहुत नहीं अटका, लेकिन यह साफ़ दिखता है कि लोग इनमें अक्सर confuse होते हैं। box model को समझना और Firefox developer tools का इस्तेमाल करना Flexbox model सीखने में बहुत मदद करता है। यह container को काफ़ी अच्छी तरह visualize कर देता है, और अब लगता है Chrome developer tools में भी कुछ ऐसा ही है
    flexboxfroggy और cssgridgarden भी practice के लिए उपयोगी थे। फिर भी syntax देखने के लिए मैं हर बार CSS-Tricks cheatsheet खोलता हूँ, और row है या column, यह पहली कोशिश में कभी सही नहीं होता

    • Chrome/Edge में एक अच्छा feature है जो शायद Firefox में नहीं है
      Flex mode toggle को जल्दी ऑन-ऑफ किया जा सकता है https://imgur.com/a/17iy1eN
  • यह tool बहुत सीमित लगता है क्योंकि यह सिर्फ़ 4 container properties को ही संभालता है
    Flexbox में काफ़ी महत्वपूर्ण child item properties इसमें पूरी तरह गायब हैं

  • काश CSS layout की practice के लिए कोई दिलचस्प exercises का collection होता
    अच्छी तरह लिखे गए solutions और explanations हों, और debugging exercises भी हों, जैसे “यह code snippet मनचाहा layout क्यों नहीं बना पा रहा?”
    CSS issues को debug करने में ChatGPT काफ़ी मददगार रहा है। यह हमेशा सही नहीं होता, लेकिन ज़्यादातर सही दिशा दे देता है। फिर भी मैं CSS वास्तव में कैसे काम करता है, इसे और गहराई से समझना चाहता हूँ। मैंने किताबें और tutorials भी पढ़े हैं और आखिरकार यह समझता हूँ कि यह rules का एक set है, लेकिन इसे ठीक-ठीक लागू करना मुश्किल है

    • मैं भी लगभग इसी तरह Claude इस्तेमाल करता हूँ
      मैं अक्सर उससे CSS ठीक करके इस तरह दोबारा लिखने को कहता हूँ कि मनचाहा रूप मिल जाए, और यह docs खंगालने से कहीं ज़्यादा तेज़ है