മലയാളം

സിഎസ്എസ് @property റൂൾ ഉപയോഗിച്ച് കസ്റ്റം പ്രോപ്പർട്ടി ടൈപ്പുകൾ നിർവചിക്കൂ. നൂതന ആനിമേഷനുകളും മികച്ച തീമിംഗും ശക്തമായ സിഎസ്എസ് ആർക്കിടെക്ചറും സാധ്യമാക്കൂ.

സിഎസ്എസ് @property റൂൾ: കസ്റ്റം പ്രോപ്പർട്ടി ടൈപ്പ് ഡെഫനിഷൻ്റെ ശക്തി അഴിച്ചുവിടുന്നു

സിഎസ്എസ് ലോകം നിരന്തരം വികസിച്ചുകൊണ്ടിരിക്കുകയാണ്, അതിലെ ഏറ്റവും പുതിയതും ശക്തവുമായ കൂട്ടിച്ചേർക്കലുകളിൽ ഒന്നാണ് @property റൂൾ. ഈ റൂൾ കസ്റ്റം പ്രോപ്പർട്ടി ടൈപ്പുകൾ നിർവചിക്കുന്നതിനുള്ള ഒരു സംവിധാനം നൽകുന്നു, ഇത് നിങ്ങളുടെ സിഎസ്എസ്-ൽ കൂടുതൽ നിയന്ത്രണവും അയവും കൊണ്ടുവരികയും കൂടുതൽ സങ്കീർണ്ണമായ ആനിമേഷനുകൾ, മെച്ചപ്പെട്ട തീമിംഗ് കഴിവുകൾ, കൂടുതൽ ശക്തമായ മൊത്തത്തിലുള്ള സിഎസ്എസ് ആർക്കിടെക്ചർ എന്നിവയ്ക്ക് വഴിയൊരുക്കുകയും ചെയ്യുന്നു. ഈ ലേഖനം @property റൂളിനെക്കുറിച്ച് ആഴത്തിൽ പരിശോധിക്കുകയും, അതിൻ്റെ സിൻ്റാക്സ്, കഴിവുകൾ, പ്രായോഗിക പ്രയോഗങ്ങൾ എന്നിവയെല്ലാം ഒരു ആഗോള പ്രേക്ഷകരെ മനസ്സിൽ വെച്ചുകൊണ്ട് പര്യവേക്ഷണം ചെയ്യുകയും ചെയ്യും.

എന്താണ് സിഎസ്എസ് കസ്റ്റം പ്രോപ്പർട്ടികൾ (വേരിയബിളുകൾ)?

@property റൂളിലേക്ക് കടക്കുന്നതിന് മുമ്പ്, സിഎസ്എസ് വേരിയബിളുകൾ എന്നും അറിയപ്പെടുന്ന സിഎസ്എസ് കസ്റ്റം പ്രോപ്പർട്ടികളെക്കുറിച്ച് മനസ്സിലാക്കേണ്ടത് അത്യാവശ്യമാണ്. കസ്റ്റം പ്രോപ്പർട്ടികൾ നിങ്ങളുടെ സിഎസ്എസ്-നുള്ളിൽ വീണ്ടും ഉപയോഗിക്കാവുന്ന മൂല്യങ്ങൾ നിർവചിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് നിങ്ങളുടെ സ്റ്റൈൽഷീറ്റുകൾ കൂടുതൽ പരിപാലിക്കാൻ എളുപ്പമുള്ളതും അപ്ഡേറ്റ് ചെയ്യാൻ സൗകര്യപ്രദവുമാക്കുന്നു. അവ --variable-name സിൻ്റാക്സ് ഉപയോഗിച്ച് പ്രഖ്യാപിക്കുകയും var() ഫംഗ്ഷൻ ഉപയോഗിച്ച് ആക്സസ് ചെയ്യുകയും ചെയ്യുന്നു.

ഉദാഹരണം:


:root {
  --primary-color: #007bff; /* ആഗോളമായി നിർവചിച്ച ഒരു പ്രൈമറി കളർ */
  --secondary-color: #6c757d;
}

a {
  color: var(--primary-color);
  text-decoration: none;
}

button {
  background-color: var(--primary-color);
  color: white;
  border: none;
  padding: 10px 20px;
}

ഈ ഉദാഹരണത്തിൽ, --primary-color, --secondary-color എന്നിവ കസ്റ്റം പ്രോപ്പർട്ടികളാണ്. നിങ്ങളുടെ വെബ്സൈറ്റിലുടനീളം പ്രൈമറി കളർ മാറ്റണമെങ്കിൽ, നിങ്ങൾ അത് ഒരിടത്ത് മാത്രം അപ്ഡേറ്റ് ചെയ്താൽ മതി – അതായത് :root സെലക്ടറിൽ.

അടിസ്ഥാന കസ്റ്റം പ്രോപ്പർട്ടികളുടെ പരിമിതി

കസ്റ്റം പ്രോപ്പർട്ടികൾ അവിശ്വസനീയമാംവിധം ഉപയോഗപ്രദമാണെങ്കിലും, അവയ്ക്ക് ഒരു പ്രധാന പരിമിതിയുണ്ട്: അവയെ അടിസ്ഥാനപരമായി സ്ട്രിംഗുകളായാണ് കണക്കാക്കുന്നത്. ഇതിനർത്ഥം ഒരു കസ്റ്റം പ്രോപ്പർട്ടി ഏത് തരം മൂല്യമാണ് (ഉദാ. നമ്പർ, കളർ, ലെങ്ത്) സൂക്ഷിക്കുന്നതെന്ന് സിഎസ്എസ്-ന് സ്വാഭാവികമായി അറിയില്ല. ബ്രൗസർ തരം ഊഹിക്കാൻ ശ്രമിക്കുമെങ്കിലും, ഇത് അപ്രതീക്ഷിതമായ പെരുമാറ്റത്തിലേക്ക് നയിച്ചേക്കാം, പ്രത്യേകിച്ചും ആനിമേഷനുകളുടെയും ട്രാൻസിഷനുകളുടെയും കാര്യത്തിൽ. ഉദാഹരണത്തിന്, ഒരു കളർ സൂക്ഷിക്കുന്ന കസ്റ്റം പ്രോപ്പർട്ടി ആനിമേറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്നത് പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിച്ചേക്കില്ല, അല്ലെങ്കിൽ വ്യത്യസ്ത ബ്രൗസറുകളിൽ സ്ഥിരമായി പ്രവർത്തിച്ചേക്കില്ല.

@property റൂൾ പരിചയപ്പെടുത്തുന്നു

@property റൂൾ ഈ പരിമിതിയെ അഭിസംബോധന ചെയ്യുന്നു, ഒരു കസ്റ്റം പ്രോപ്പർട്ടിയുടെ തരം, സിൻ്റാക്സ്, പ്രാരംഭ മൂല്യം, ഇൻഹെറിറ്റൻസ് സ്വഭാവം എന്നിവ വ്യക്തമായി നിർവചിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് കസ്റ്റം പ്രോപ്പർട്ടികളുമായി പ്രവർത്തിക്കാൻ കൂടുതൽ ശക്തവും പ്രവചനാതീതവുമായ ഒരു മാർഗം നൽകുന്നു, പ്രത്യേകിച്ചും അവയെ ആനിമേറ്റ് ചെയ്യുമ്പോഴോ ട്രാൻസിഷൻ ചെയ്യുമ്പോഴോ.

@property റൂളിൻ്റെ സിൻ്റാക്സ്

@property റൂളിൻ്റെ അടിസ്ഥാന സിൻ്റാക്സ് താഴെ പറയുന്നവയാണ്:


@property --property-name {
  syntax: ;
  inherits: ;
  initial-value: ;
}

റൂളിൻ്റെ ഓരോ ഭാഗവും നമുക്ക് വിശദമായി പരിശോധിക്കാം:

@property റൂളിൻ്റെ പ്രായോഗിക ഉദാഹരണങ്ങൾ

യഥാർത്ഥ സാഹചര്യങ്ങളിൽ @property റൂൾ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് വ്യക്തമാക്കാൻ ചില പ്രായോഗിക ഉദാഹരണങ്ങൾ നോക്കാം.

ഉദാഹരണം 1: ഒരു കസ്റ്റം കളർ ആനിമേറ്റ് ചെയ്യുന്നു

സാധാരണ സിഎസ്എസ് ട്രാൻസിഷനുകൾ ഉപയോഗിച്ച് കളറുകൾ ആനിമേറ്റ് ചെയ്യുന്നത് ചിലപ്പോൾ ബുദ്ധിമുട്ടാണ്. @property റൂൾ ഇത് വളരെ എളുപ്പമാക്കുന്നു.


@property --brand-color {
  syntax: <color>;
  inherits: false;
  initial-value: #007bff;
}

:root {
  --brand-color: #007bff;
}

.element {
  background-color: var(--brand-color);
  transition: --brand-color 0.5s ease-in-out;
}

.element:hover {
  --brand-color: #28a745; /* ഹോവർ ചെയ്യുമ്പോൾ പച്ച നിറത്തിലേക്ക് മാറ്റുക */
}

ഈ ഉദാഹരണത്തിൽ, നമ്മൾ --brand-color എന്ന ഒരു കസ്റ്റം പ്രോപ്പർട്ടി നിർവചിക്കുകയും അതിൻ്റെ സിൻ്റാക്സ് <color> ആണെന്ന് വ്യക്തമാക്കുകയും ചെയ്യുന്നു. നമ്മൾ പ്രാരംഭ മൂല്യം #007bff (നീലയുടെ ഒരു ഷേഡ്) ആയി സജ്ജമാക്കുകയും ചെയ്യുന്നു. ഇപ്പോൾ, .element-ൽ ഹോവർ ചെയ്യുമ്പോൾ, പശ്ചാത്തല നിറം നീലയിൽ നിന്ന് പച്ചയിലേക്ക് സുഗമമായി മാറുന്നു.

ഉദാഹരണം 2: ഒരു കസ്റ്റം ലെങ്ത് ആനിമേറ്റ് ചെയ്യുന്നു

ലെങ്തുകൾ (ഉദാ. വീതി, ഉയരം) ആനിമേറ്റ് ചെയ്യുന്നത് @property റൂളിൻ്റെ മറ്റൊരു സാധാരണ ഉപയോഗമാണ്.


@property --element-width {
  syntax: <length>;
  inherits: false;
  initial-value: 100px;
}

.element {
  width: var(--element-width);
  transition: --element-width 0.3s ease-out;
}

.element:hover {
  --element-width: 200px;
}

ഇവിടെ, നമ്മൾ --element-width എന്ന ഒരു കസ്റ്റം പ്രോപ്പർട്ടി നിർവചിക്കുകയും അതിൻ്റെ സിൻ്റാക്സ് <length> ആണെന്ന് വ്യക്തമാക്കുകയും ചെയ്യുന്നു. പ്രാരംഭ മൂല്യം 100px ആയി സജ്ജീകരിച്ചിരിക്കുന്നു. .element-ൽ ഹോവർ ചെയ്യുമ്പോൾ, അതിൻ്റെ വീതി 100px-ൽ നിന്ന് 200px-ലേക്ക് സുഗമമായി മാറുന്നു.

ഉദാഹരണം 3: ഒരു കസ്റ്റം പ്രോഗ്രസ് ബാർ ഉണ്ടാക്കുന്നു

ആനിമേഷനിൽ കൂടുതൽ നിയന്ത്രണത്തോടെ കസ്റ്റം പ്രോഗ്രസ് ബാറുകൾ നിർമ്മിക്കാൻ @property റൂൾ ഉപയോഗിക്കാം.


@property --progress {
  syntax: <number>;
  inherits: false;
  initial-value: 0;
}

.progress-bar {
  width: 200px;
  height: 10px;
  background-color: #eee;
}

.progress-bar::before {
  content: '';
  display: block;
  width: calc(var(--progress) * 1%);
  height: 100%;
  background-color: #007bff;
  transition: --progress 0.3s ease-in-out;
}

.progress-bar[data-progress="50"]::before {
  --progress: 50;
}

.progress-bar[data-progress="100"]::before {
  --progress: 100;
}

ഈ ഉദാഹരണത്തിൽ, നമ്മൾ --progress എന്ന ഒരു കസ്റ്റം പ്രോപ്പർട്ടി നിർവചിക്കുന്നു, ഇത് പുരോഗതിയുടെ ശതമാനത്തെ പ്രതിനിധീകരിക്കുന്നു. തുടർന്ന്, --progress-ൻ്റെ മൂല്യത്തെ അടിസ്ഥാനമാക്കി പ്രോഗ്രസ് ബാറിൻ്റെ വീതി കണക്കാക്കാൻ നമ്മൾ calc() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. .progress-bar എലമെൻ്റിൽ data-progress ആട്രിബ്യൂട്ട് സജ്ജീകരിക്കുന്നതിലൂടെ, നമുക്ക് പുരോഗതിയുടെ നില നിയന്ത്രിക്കാൻ കഴിയും.

ഉദാഹരണം 4: കസ്റ്റം പ്രോപ്പർട്ടികൾ ഉപയോഗിച്ചുള്ള തീമിംഗ്

വിവിധ തീമുകൾക്കിടയിൽ മാറുമ്പോൾ കൂടുതൽ വിശ്വസനീയവും പ്രവചനാതീതവുമായ സ്വഭാവം നൽകിക്കൊണ്ട് @property റൂൾ തീമിംഗ് മെച്ചപ്പെടുത്തുന്നു. ഒരു ലളിതമായ ഡാർക്ക്/ലൈറ്റ് തീം സ്വിച്ചിനായി താഴെ പറയുന്ന ഉദാഹരണം പരിഗണിക്കുക:


@property --bg-color {
    syntax: <color>;
    inherits: false;
    initial-value: #ffffff; /* ലൈറ്റ് തീം ഡിഫോൾട്ട് */
}

@property --text-color {
    syntax: <color>;
    inherits: false;
    initial-value: #000000; /* ലൈറ്റ് തീം ഡിഫോൾട്ട് */
}

:root {
    --bg-color: #ffffff;
    --text-color: #000000;
    transition: --bg-color 0.3s, --text-color 0.3s;
}

body {
    background-color: var(--bg-color);
    color: var(--text-color);
}

.dark-theme {
    --bg-color: #333333; /* ഡാർക്ക് തീം */
    --text-color: #ffffff;
}

@property റൂൾ ഉപയോഗിച്ച് --bg-color, --text-color എന്നിവ നിർവചിക്കുന്നതിലൂടെ, നിർവചിക്കപ്പെട്ട ടൈപ്പുകളില്ലാത്ത അടിസ്ഥാന കസ്റ്റം പ്രോപ്പർട്ടികൾ ഉപയോഗിക്കുന്നതിനെ അപേക്ഷിച്ച് തീമുകൾക്കിടയിലുള്ള മാറ്റം സുഗമവും കൂടുതൽ വിശ്വസനീയവുമായിരിക്കും.

ബ്രൗസർ കോംപാറ്റിബിലിറ്റി

2023-ൻ്റെ അവസാനത്തോടെ, ക്രോം, ഫയർഫോക്സ്, സഫാരി, എഡ്ജ് എന്നിവയുൾപ്പെടെയുള്ള ആധുനിക ബ്രൗസറുകളിൽ @property റൂളിനുള്ള പിന്തുണ പൊതുവെ നല്ലതാണ്. എന്നിരുന്നാലും, നിങ്ങളുടെ ഉപയോക്താക്കൾക്ക് ഈ ഫീച്ചറിന് മതിയായ പിന്തുണയുണ്ടെന്ന് ഉറപ്പാക്കാൻ Can I Use (caniuse.com) പോലുള്ള വെബ്സൈറ്റുകളിൽ ഏറ്റവും പുതിയ ബ്രൗസർ കോംപാറ്റിബിലിറ്റി വിവരങ്ങൾ പരിശോധിക്കുന്നത് എല്ലായ്പ്പോഴും നല്ലതാണ്.

@property റൂളിനെ പിന്തുണയ്ക്കാത്ത പഴയ ബ്രൗസറുകളെ നിങ്ങൾ പിന്തുണയ്ക്കണമെങ്കിൽ, നിങ്ങൾക്ക് ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഫീച്ചർ ഡിറ്റക്ഷൻ നടത്തുകയും ഫാൾബാക്ക് സൊല്യൂഷനുകൾ നൽകുകയും ചെയ്യാം. ഉദാഹരണത്തിന്, ബ്രൗസർ CSS.registerProperty (@property-യുമായി ബന്ധപ്പെട്ട ജാവാസ്ക്രിപ്റ്റ് API) പിന്തുണയ്ക്കുന്നുണ്ടോ എന്ന് കണ്ടെത്താൻ നിങ്ങൾക്ക് ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിക്കാം, പിന്തുണയ്ക്കുന്നില്ലെങ്കിൽ ബദൽ സ്റ്റൈലുകൾ പ്രയോഗിക്കാം.

@property റൂൾ ഉപയോഗിക്കുന്നതിനുള്ള മികച്ച രീതികൾ

@property റൂൾ ഉപയോഗിക്കുമ്പോൾ മനസ്സിൽ വെക്കേണ്ട ചില മികച്ച രീതികൾ ഇതാ:

പ്രവേശനക്ഷമതാ പരിഗണനകൾ

@property റൂൾ ഉപയോഗിക്കുമ്പോൾ, പ്രവേശനക്ഷമത പരിഗണിക്കേണ്ടത് പ്രധാനമാണ്. നിങ്ങളുടെ ആനിമേഷനുകളും ട്രാൻസിഷനുകളും വൈജ്ഞാനിക വൈകല്യങ്ങളുള്ള ഉപയോക്താക്കൾക്ക് അമിതമായി ശ്രദ്ധ തിരിക്കുന്നതോ ആശയക്കുഴപ്പമുണ്ടാക്കുന്നതോ അല്ലെന്ന് ഉറപ്പാക്കുക. മിന്നുന്നതോ വേഗത്തിൽ മാറുന്നതോ ആയ ആനിമേഷനുകൾ ഉപയോഗിക്കുന്നത് ഒഴിവാക്കുക, കാരണം ഇവ ചില വ്യക്തികളിൽ അപസ്മാരം ഉണ്ടാക്കാൻ കാരണമായേക്കാം.

കൂടാതെ, നിങ്ങളുടെ വർണ്ണ തിരഞ്ഞെടുപ്പുകൾ കാഴ്ച വൈകല്യമുള്ള ഉപയോക്താക്കൾക്ക് മതിയായ കോൺട്രാസ്റ്റ് നൽകുന്നുവെന്ന് ഉറപ്പാക്കുക. നിങ്ങളുടെ വർണ്ണ സംയോജനങ്ങൾ പ്രവേശനക്ഷമതാ മാർഗ്ഗനിർദ്ദേശങ്ങൾ പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ നിങ്ങൾക്ക് WebAIM കോൺട്രാസ്റ്റ് ചെക്കർ പോലുള്ള ടൂളുകൾ ഉപയോഗിക്കാം.

ആഗോള പരിഗണനകൾ

ഒരു ആഗോള പ്രേക്ഷകർക്കായി വെബ്സൈറ്റുകളും ആപ്ലിക്കേഷനുകളും വികസിപ്പിക്കുമ്പോൾ, സാംസ്കാരിക വ്യത്യാസങ്ങളും പ്രാദേശികവൽക്കരണവും പരിഗണിക്കേണ്ടത് പ്രധാനമാണ്. ഒരു ആഗോള പശ്ചാത്തലത്തിൽ @property റൂൾ ഉപയോഗിക്കുമ്പോൾ മനസ്സിൽ വെക്കേണ്ട ചില കാര്യങ്ങൾ ഇതാ:

സിഎസ്എസ് കസ്റ്റം പ്രോപ്പർട്ടികളുടെയും @property റൂളിൻ്റെയും ഭാവി

സിഎസ്എസ്-ൻ്റെ പരിണാമത്തിലെ ഒരു സുപ്രധാന ചുവടുവെപ്പാണ് @property റൂൾ. ബ്രൗസർ പിന്തുണ മെച്ചപ്പെട്ടുകൊണ്ടിരിക്കുന്നതിനാൽ, ഈ ശക്തമായ ഫീച്ചറിൻ്റെ കൂടുതൽ നൂതനമായ ഉപയോഗങ്ങൾ നമുക്ക് പ്രതീക്ഷിക്കാം. ഭാവിയിൽ, അറേകൾ, ഒബ്ജക്റ്റുകൾ പോലുള്ള കൂടുതൽ സങ്കീർണ്ണമായ ഡാറ്റാ ടൈപ്പുകളെ പിന്തുണയ്ക്കുന്നതിനായി പുതിയ സിൻ്റാക്സ് മൂല്യങ്ങൾ @property റൂളിൽ ചേർത്തേക്കാം. ജാവാസ്ക്രിപ്റ്റുമായുള്ള മികച്ച സംയോജനവും നമുക്ക് കാണാൻ കഴിഞ്ഞേക്കാം, ഇത് ഡെവലപ്പർമാരെ റൺടൈമിൽ കസ്റ്റം പ്രോപ്പർട്ടികൾ ഡൈനാമിക്കായി സൃഷ്ടിക്കാനും കൈകാര്യം ചെയ്യാനും അനുവദിക്കുന്നു.

കസ്റ്റം പ്രോപ്പർട്ടികളുടെയും @property റൂളിൻ്റെയും സംയോജനം കൂടുതൽ മോഡുലാർ, പരിപാലിക്കാൻ എളുപ്പമുള്ള, ശക്തമായ സിഎസ്എസ് ആർക്കിടെക്ചറിന് വഴിയൊരുക്കുന്നു. ഈ ഫീച്ചറുകൾ സ്വീകരിക്കുന്നതിലൂടെ, ഡെവലപ്പർമാർക്ക് ലോകമെമ്പാടുമുള്ള ഉപയോക്താക്കൾക്ക് പ്രവേശനക്ഷമമായ കൂടുതൽ സങ്കീർണ്ണവും ആകർഷകവുമായ വെബ് അനുഭവങ്ങൾ സൃഷ്ടിക്കാൻ കഴിയും.

ഉപസംഹാരം

@property റൂൾ വെബ് ഡെവലപ്പർമാരെ കസ്റ്റം പ്രോപ്പർട്ടി ടൈപ്പുകൾ നിർവചിക്കാൻ പ്രാപ്തരാക്കുന്നു, ഇത് ആനിമേഷനുകൾ, തീമിംഗ്, മൊത്തത്തിലുള്ള സിഎസ്എസ് ആർക്കിടെക്ചർ എന്നിവയ്ക്ക് പുതിയ സാധ്യതകൾ തുറക്കുന്നു. അതിൻ്റെ സിൻ്റാക്സ്, കഴിവുകൾ, മികച്ച രീതികൾ എന്നിവ മനസ്സിലാക്കുന്നതിലൂടെ, കൂടുതൽ ശക്തവും പരിപാലിക്കാൻ എളുപ്പമുള്ളതും കാഴ്ചയിൽ ആകർഷകവുമായ വെബ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ നിങ്ങൾക്ക് ഈ ശക്തമായ ഫീച്ചർ പ്രയോജനപ്പെടുത്താം. ബ്രൗസർ പിന്തുണ വർദ്ധിച്ചുകൊണ്ടിരിക്കുന്നതിനാൽ, ആധുനിക വെബ് ഡെവലപ്പറുടെ ടൂൾകിറ്റിൽ @property റൂൾ ഒരു അനിവാര്യ ഘടകമായി മാറുമെന്നതിൽ സംശയമില്ല. ഈ സാങ്കേതികവിദ്യ സ്വീകരിക്കുക, അതിൻ്റെ കഴിവുകൾ ഉപയോഗിച്ച് പരീക്ഷിക്കുക, സിഎസ്എസ് കസ്റ്റം പ്രോപ്പർട്ടികളുടെ മുഴുവൻ സാധ്യതകളും പ്രയോജനപ്പെടുത്തുക.

കൂടുതൽ വായനയ്ക്ക്

സിഎസ്എസ് @property റൂൾ: കസ്റ്റം പ്രോപ്പർട്ടി ടൈപ്പ് ഡെഫനിഷൻ്റെ ശക്തി അഴിച്ചുവിടുന്നു | MLOG