Flutter File Permission Card with rwx Grid and Octal Mode Readout
A developer tools card that explains Unix file permissions at a glance: a terminal styled grid of owner, group and other against read, write and execute, with each granted bit worth 4, 2 or 1 summing into the octal digits of mode 755, plus the chmod command and the matching -rwxr-xr-x listing. Built with Wind tiles and colour coded triads, ready for DevOps dashboards, hosting panels and learning apps.
main.dart
WDiv(
className: 'w-[340px] rounded-3xl bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-800 p-5 flex flex-col shadow-xl',
children: [
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WDiv(
className: 'flex flex-row items-center gap-3',
children: [
WDiv(
className: 'flex flex-row items-center justify-center w-10 h-10 rounded-xl bg-slate-900 dark:bg-slate-700',
child: WIcon(
Icons.lock,
className: 'text-emerald-400 text-xl'
)
),
WDiv(
className: 'flex flex-col',
children: [
WText(
'deploy.sh',
className: 'text-base font-bold text-gray-900 dark:text-white'
),
WText(
'File permissions',
className: 'text-xs text-gray-500 dark:text-gray-400'
),
]
),
]
),
WDiv(
className: 'rounded-full bg-emerald-50 dark:bg-emerald-900/40 px-3 py-1',
child: WText(
'Mode 755',
className: 'text-xs font-bold text-emerald-700 dark:text-emerald-300'
)
),
]
),
WDiv(
className: 'flex flex-col w-full mt-4 rounded-2xl bg-slate-900 dark:bg-slate-950 px-3 py-3',
children: [
WDiv(
className: 'flex flex-row items-center gap-2',
children: [
WText(
'',
className: 'w-[60px] text-xs'
),
WText(
'Read',
className: 'w-[52px] text-center text-xs font-semibold text-slate-400 dark:text-slate-400'
),
WText(
'Write',
className: 'w-[52px] text-center text-xs font-semibold text-slate-400 dark:text-slate-400'
),
WText(
'Exec',
className: 'w-[52px] text-center text-xs font-semibold text-slate-400 dark:text-slate-400'
),
WText(
'=',
className: 'w-[26px] text-center text-xs font-semibold text-slate-400 dark:text-slate-400'
)
]
),
WDiv(
className: 'flex flex-row items-center gap-2 mt-2',
children: [
WDiv(
className: 'flex flex-col w-[60px]',
children: [
WText(
'Owner',
className: 'text-sm font-semibold text-white'
),
WText(
'u',
className: 'text-[10px] text-slate-400 dark:text-slate-400'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-emerald-500 dark:bg-emerald-500',
children: [
WText(
'r',
className: 'text-base font-bold text-white'
),
WText(
'4',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-emerald-500 dark:bg-emerald-500',
children: [
WText(
'w',
className: 'text-base font-bold text-white'
),
WText(
'2',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-emerald-500 dark:bg-emerald-500',
children: [
WText(
'x',
className: 'text-base font-bold text-white'
),
WText(
'1',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WText(
'7',
className: 'w-[26px] text-center text-2xl font-bold text-emerald-400 dark:text-emerald-400'
)
]
),
WDiv(
className: 'flex flex-row items-center gap-2 mt-2',
children: [
WDiv(
className: 'flex flex-col w-[60px]',
children: [
WText(
'Group',
className: 'text-sm font-semibold text-white'
),
WText(
'g',
className: 'text-[10px] text-slate-400 dark:text-slate-400'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-sky-500 dark:bg-sky-500',
children: [
WText(
'r',
className: 'text-base font-bold text-white'
),
WText(
'4',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl border border-slate-600 dark:border-slate-600 bg-slate-800 dark:bg-slate-800',
children: [
WText(
'-',
className: 'text-base font-bold text-slate-500 dark:text-slate-500'
),
WText(
'0',
className: 'text-[10px] font-semibold text-slate-500 dark:text-slate-500'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-sky-500 dark:bg-sky-500',
children: [
WText(
'x',
className: 'text-base font-bold text-white'
),
WText(
'1',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WText(
'5',
className: 'w-[26px] text-center text-2xl font-bold text-sky-400 dark:text-sky-400'
)
]
),
WDiv(
className: 'flex flex-row items-center gap-2 mt-2',
children: [
WDiv(
className: 'flex flex-col w-[60px]',
children: [
WText(
'Other',
className: 'text-sm font-semibold text-white'
),
WText(
'o',
className: 'text-[10px] text-slate-400 dark:text-slate-400'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-amber-500 dark:bg-amber-500',
children: [
WText(
'r',
className: 'text-base font-bold text-white'
),
WText(
'4',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl border border-slate-600 dark:border-slate-600 bg-slate-800 dark:bg-slate-800',
children: [
WText(
'-',
className: 'text-base font-bold text-slate-500 dark:text-slate-500'
),
WText(
'0',
className: 'text-[10px] font-semibold text-slate-500 dark:text-slate-500'
)
]
),
WDiv(
className: 'flex flex-col items-center justify-center w-[52px] h-[44px] rounded-xl bg-amber-500 dark:bg-amber-500',
children: [
WText(
'x',
className: 'text-base font-bold text-white'
),
WText(
'1',
className: 'text-[10px] font-semibold text-white/80'
)
]
),
WText(
'5',
className: 'w-[26px] text-center text-2xl font-bold text-amber-400 dark:text-amber-400'
)
]
),
WDiv(
className: 'w-full mt-3 border-t border-slate-700 dark:border-slate-700'
),
WDiv(
className: 'flex flex-row items-center gap-2 mt-3',
children: [
WText(
'$',
className: 'text-sm font-bold text-emerald-400 dark:text-emerald-400'
),
WText(
'chmod 755 deploy.sh',
className: 'text-sm text-slate-200 dark:text-slate-200'
),
]
),
WDiv(
className: 'flex flex-row items-center mt-1',
children: [
WText(
'-',
className: 'text-base font-bold text-slate-400 dark:text-slate-400'
),
WText(
'rwx',
className: 'text-base font-bold text-emerald-400 dark:text-emerald-400'
),
WText(
'r-x',
className: 'text-base font-bold text-sky-400 dark:text-sky-400'
),
WText(
'r-x',
className: 'text-base font-bold text-amber-400 dark:text-amber-400'
),
WText(
' deploy.sh',
className: 'text-sm text-slate-400 dark:text-slate-400'
),
]
),
]
),
WText(
'Each digit sums read 4, write 2 and execute 1.',
className: 'text-xs text-gray-500 dark:text-gray-400 mt-3'
),
WDiv(
className: 'w-full mt-4',
child: WButton(
className: 'w-full rounded-2xl bg-slate-900 dark:bg-slate-700 py-3 flex flex-row items-center justify-center gap-2',
child: WText(
'Copy chmod 755',
className: 'text-sm font-semibold text-white'
)
)
),
]
)
Stats
- Views
- 81
- Stars
- 0
- Revisions
- 1
- Size
- 10,517 chars
- Created
- Oct 11, 2026