އަސާސީ ސީއެސްއެސްގެ އުސޫލުތައް ދަސްކުރާއިރު، ބެލެހެއްޓޭނެ ގޮތް ކަށަވަރުކުރުމަށްޓަކައި މޮޑިއުލަރ، ރީޔޫޒް ކުރެވޭ، އަދި ޑިސްކްރިޕްޓިވް ސްޓައިލްތައް ލިޔަން ދަސްކޮށްދެއެވެ. އެކަމަކު ޑިވެލޮޕަރުން ހަގީގީ ދުނިޔޭގެ އެޕްލިކޭޝަންތަކާ ގުޅިގެން އުޅޭއިރު، ގިނަ ފަހަރަށް ހީވަނީ ނޭދެވޭ ދާއިރާތަކަށް ސްޓައިލްތައް ލީކު ނުވެ ޔޫއައި ފީޗާސް އިތުރުކުރުމަކީ ކުރެވޭނެ ކަމެއް ނޫން ކަމަށެވެ. މި މައްސަލަ ގިނަ ފަހަރަށް ސްނޯބޯލް ވެގެން ދަނީ އަމިއްލައަށް ފުރިހަމަވާ ލޫޕަކަށް؛ styles that are theoretically scoped to one element or class start showing up where they don’t belong. މިކަމުގެ ސަބަބުން ޑިވެލޮޕަރަށް މަޖުބޫރުވަނީ ލީކް ވެފައިވާ ސްޓައިލްތައް އޮވަރރައިޑް ކުރުމަށްޓަކައި އިތުރު ވަކި ސެލެކްޓަރުތަކެއް އުފެއްދުމަށެވެ، އެއަށްފަހު އެކްސިޑެންޓްވެގެން ގްލޯބަލް ސްޓައިލްތައް އޮވަރރައިޑްކޮށް، މިހެންގޮސް. ބީއީއެމް ފަދަ ރިޖިޑް ކްލާސް ނަން ކޮންވެންޝަންތަކަކީ މި މައްސަލައަށް އެއް ތިއަރީ ހައްލެވެ. ބީއީއެމް (ބްލޮކް، އެލިމެންޓް، މޮޑިފައިއަރ) މެތޮޑޮލޮޖީއަކީ ސީއެސްއެސް ފައިލްތަކުގެ ތެރޭގައި ރީޔޫޒަބިލިޓީއާއި ސްޓްރަކްޗަރ ކަށަވަރުކުރުމަށްޓަކައި ސީއެސްއެސް ކްލާސްތަކަށް ނަން ދިނުމުގެ ނިޒާމީ ގޮތެކެވެ. މިފަދަ ނަން ދިނުމުގެ ކޮންވެންޝަންތަކުގެ ސަބަބުން އެލިމެންޓްތަކާއި އެތަކެތީގެ ހާލަތު ބަޔާންކުރުމަށް ޑޮމެއިން ލޭންގުއޭޖް ލީވަރކޮށްގެން ކޮގްނިޓިވް ލޯޑް ކުޑަކުރެވި، ރަނގަޅަށް ތަންފީޒުކުރެވިއްޖެނަމަ ބޮޑެތި އެޕްލިކޭޝަންތަކަށް ސްޓައިލްތައް ބެލެހެއްޓުމަށް ފަސޭހަވެގެންދެއެވެ. ނަމަވެސް ހަގީގީ ދުނިޔޭގައި އަބަދު އެގޮތަށް ކަންތައް ނުވާނެއެވެ. އިސްކަންދޭ ކަންތައްތައް ބަދަލުވެދާނެ ކަމަށާއި، ބަދަލާއެކު ތަންފީޒުކުރުން އެއްގޮތް ނުވާ ކަމަށް ވެސް ވިދާޅުވި އެވެ. އެޗްޓީއެމްއެލް ސްޓްރަކްޗަރ އަށް ކުދިކުދި ބަދަލުތައް ގެނައުމަށް ސީއެސްއެސް ކްލާސް ނަން ގިނަ ރިވިޝަންތަކެއް ކުރަން ޖެހިދާނެއެވެ. ވަރަށް އިންޓަރެކްޓިވް ފްރަންޓް އެންޑް އެޕްލިކޭޝަންތަކާއެކު، ބީއީއެމް ޕެޓަރންއަށް ތަބާވާ ކްލާސް ނަންތައް ދިގުވެ، އުނދަގޫވެދާނެ (އެބަހީ، app-user-overview__status--is-authenticating)، އަދި ނަން ދިނުމުގެ އުސޫލުތަކަށް ފުރިހަމައަށް ތަބާނުވުމުން ސިސްޓަމްގެ އޮނިގަނޑު މުގުރާލައި، އޭގެ ފައިދާ ނަފީވެއެވެ. މި ގޮންޖެހުންތަކަށް ބަލާއިރު، ޑިވެލޮޕަރުން ފްރޭމްވޯކްތަކަށް އެނބުރި ދިއުމަކީ އަޖައިބެއް ނޫން، ޓޭލްވިންޑް އަކީ އެންމެ މަގުބޫލު ސީއެސްއެސް ފްރޭމްވޯކެވެ. ސްޓައިލްތަކުގެ މެދުގައި ކާމިޔާބު ނުކުރެވޭ ސްޕެސިފިކްޓީ ހަނގުރާމައެއް ކަހަލަ ކަމެއް ކުރަން މަސައްކަތް ކުރުމުގެ ބަދަލުގައި ސީއެސްއެސް ކެސްކޭޑް ދޫކޮށްލާފައި ފުރިހަމަ އެކަހެރިކަން ކަށަވަރުކޮށްދޭ ޓޫލްތައް ބޭނުން ކުރުމަކީ ފަސޭހަ ކަމެކެވެ. ޑިވެލޮޕަރުން ލީން މޯރ އޮން ޔުޓިލިޓީސް ބައެއް ޑިވެލޮޕަރުން ކެސްކޭޑް ސްޓައިލްތަކުން ދުރުހެލިވުމަށް ޝައުގުވެރިވާކަން އަޅުގަނޑުމެންނަށް އެނގޭނީ ކިހިނެއް ހެއްޔެވެ؟ އެއީ “ޒަމާނީ” ފްރަންޓް އެންޑް ޓޫލިންގ — ސީއެސްއެސް-އިން-ޖޭއެސް ފްރޭމްވޯކްސް ފަދައިން — އެކަމަށް ޚާއްޞަކޮށް ފަރުމާކޮށްފައިވާ އުފެދުމެވެ. ވަކި ކޮމްޕޯނެންޓްތަކަށް ވަރުގަދައަށް ސްކޯޕްކޮށްފައިވާ އެކަހެރި ސްޓައިލްތަކާއެކު މަސައްކަތް ކުރުމަކީ ތާޒާ ވައިގެ ނޭވާއެއް ކަމުގައި ހީވެދާނެއެވެ. އެއީ ކަންކަމަށް ނަން ކިޔުމުގެ ބޭނުން ނައްތާލާ — އަދިވެސް އެންމެ ނަފްރަތު ކުރެވޭ އަދި ވަގުތު ނަގާ އެއް ފްރަންޓް އެންޑް ޓާސްކް — އަދި ޑިވެލޮޕަރުންނަށް ސީއެސްއެސް އިންހެރިޓޭޝަންގެ ފައިދާ ފުރިހަމައަށް ނުވިސްނި ނުވަތަ ލީވަރ ނުކޮށް އުފެއްދުންތެރި ވުމުގެ ފުރުސަތު ލިބިގެންދާ ކަމެކެވެ. އެކަމަކު ސީއެސްއެސް ކެސްކޭޑް ޑިޗް ކުރުމަކީ އޭގެ އަމިއްލަ މައްސަލަތަކެއް ވެސް ދިމާވާ ކަމެކެވެ. މިސާލަކަށް ޖާވާސްކްރިޕްޓްގައި ސްޓައިލްތައް ކޮމްޕޯސް ކުރުމަށް ބޮޑެތި ބިލްޑް ކޮންފިގްރޭޝަންތައް ބޭނުންވާއިރު، ގިނަ ފަހަރަށް ސްޓައިލްތައް ކޮމްޕޮނެންޓް މާކަޕް ނުވަތަ އެޗްޓީއެމްއެލް އާއި އުނދަގޫ ގޮތަކަށް ގުޅިފައި ހުރެއެވެ. ފަރުވާތެރިކަމާއެކު ވިސްނާފައިވާ ނަން ދިނުމުގެ މުއާހަދާތަކުގެ ބަދަލުގައި، އަޅުގަނޑުމެންނަށް ސެލެކްޓަރސް އަދި އައިޑެންޓިފައިޓަރސް (އެބަހީ، .jsx-3130221066) އޮޓޯޖެނެރޭޓް ކުރުމަށް ބިލްޑް ޓޫލްތަކަށް ހުއްދަދެމެވެ. (ތިބާގެ ހުރިހާ ކޮމްޕޮނެންޓްގެ ޔޫސްއެފެކްޓްސް އިން ކުރާ ކަންތައްތައް ވިސްނުމުގެ ކޮގްނިޓިވް ލޯޑް މިހާރުވެސް ފުދޭވަރުގެ ކަމެއް ނޫންހެން!) ކްލާސްތަކަށް ޓޫލިންގ އަށް ނަން ދިނުމުގެ މަސައްކަތް އިތުރަށް އެބްސްޓްރެކްޓް ކުރުމުގެ މާނައަކީ، ޑިވެލޮޕަރ ޓޫލްސް ފަދަ ލައިވް ޑިބަގިންގ އަށް ސަޕޯޓްކުރާ ނެޓިވް ބްރައުޒާ ފީޗާސް ލީވަރ ކުރުމުގެ ބަދަލުގައި، ގިނަ ފަހަރަށް އަސާސީ ޑިބަގިންގ ޑިވެލޮޕަރ ޓޫލްސް ފަދަ ލައިވް ޑިބަގިންގ އަށް ސަޕޯޓްކުރާ ނެޓިވް ބްރައުޒާ ފީޗާސް ލީވަރ ކުރުމުގެ ބަދަލުގައި، ޑިވެލޮޕްމަންޓަށް ކޮމްޕައިލް ކުރެވިފައިވާ ވަކި އެޕްލިކޭޝަން ވަރޝަންތަކަށް ކޮންސްޓްރެއިން ކުރެވެއެވެ. އެއީ ގާތްގަނޑަކަށް ވެބުން މިހާރުވެސް ފޯރުކޮށްދޭ އެއްޗެހި އެބްސްޓްރެކްޓް ކުރުމަށް އަޅުގަނޑުމެން ބޭނުންކުރާ ޓޫލްތައް ޑިބަގް ކުރުމަށް ޓޫލްތައް ޑިވެލޮޕް ކުރަން ޖެހޭ ކަހަލަ ކަމެއް — މި ހުރިހާ ކަމެއް ވެސް ކުރެވެނީ ސްޓޭންޑަރޑް ސީއެސްއެސް ލިޔުމުގެ “ވޭނުން” ފިލައިގެން ދިއުމުގެ ބޭނުމުގައެވެ. Luckily, modern CSS features not only make writing standard CSS more flexible but also give developers like us a great deal more power to manage the cascade and make it work for us. ސީއެސްއެސް ކެސްކޭޑް ލޭޔަރސް އަކީ މޮޅު މިސާލެއް ނަމަވެސް ހައިރާން ކުރުވަނިވި ސަމާލުކަމެއް ނުލިބޭ އެހެން ފީޗާއެއް އެބައޮތް — ދާދިފަހުން ބޭސްލައިން ކޮމްޕެޓިބަލް ވެފައިވާތީ މިހާރު އެކަން ބަދަލުވަމުން އަންނަ ނަމަވެސް. އެ ސީއެސްއެސް @scope އެޓް-ރޫލް އަޅުގަނޑު ދެކެނީ ސީއެސްއެސް @scope at-rule އަކީ އަޅުގަނޑުމެން ކަވަރުކޮށްފައިވާ ސްޓައިލް ލީކް އިންޑައުސްޑް އެންޒައިޓީއަށް ލިބޭނެ ފަރުވާއެއް ކަމުގައި، އެބްސްޓްރެކްޝަންސް އަދި އެކްސްޓްރާ ބިލްޑް ޓޫލިންގ އަށް ނެޓިވް ވެބް އެޑްވާންޓޭޖްސް ކޮމްޕްރޮމައިޒް ކުރަން މަޖުބޫރު ނުކުރާ އެއްޗެކެވެ. “@scope CSS at-rule ގެ ސަބަބުން ވަކި ޑީއޯއެމް ސަބްޓްރީތަކުގައި ހުންނަ އެލިމެންޓްތައް ސެލެކްޓް ކުރެވޭއިރު، އޮވަރރައިޑް ކުރަން އުނދަގޫ މާ ވަކި ސެލެކްޓަރުތައް ނުލިޔެ، އަދި ޑީއޯއެމް ސްޓްރަކްޗާއާ މާ ބާރަށް ސެލެކްޓަރުތައް ކަޕްލް ނުކޮށް އެލިމެންޓްތަކަށް ސީދާ ޓާގެޓް ކުރެވޭނެއެވެ.”— އެމްޑީއެން

އެހެން ގޮތަކަށް ބުނާނަމަ، ވާރުތަވެރިކަން، ކެސްކޭޑިންގ، ނުވަތަ ކަންބޮޑުވުންތަކުގެ އަސާސީ ވަކިކުރުން ވެސް ގުރުބާން ނުކޮށް، ވަކި ހާލަތްތަކެއްގައި އެކަހެރި ސްޓައިލްތަކާއެކު މަސައްކަތް ކުރެވިދާނެއެވެއެއީ ފްރަންޓް އެންޑް ޑިވެލޮޕްމަންޓްގެ ދިގު މުއްދަތަކަށް މަގުދައްކާ އުސޫލެކެވެ. ޕްލަސް، އެއީ މޮޅު ބްރައުޒާ ކަވަރޭޖެއް ލިބިފައިވާ އެއްޗެކެވެ. ހަގީގަތުގައި ފަޔަރފޮކްސް 146 އިން ޑިސެމްބަރު މަހު @scope އަށް ސަޕޯޓް އިތުރުކޮށް، ފުރަތަމަ ފަހަރަށް ބޭސްލައިން ކޮމްޕެޓިބަލް ވެގެން ދިޔައެވެ. Here is a simple comparison between a button using the BEM pattern versus the @scope rule:

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free