All posts by Ruhul Amin

About Ruhul Amin

Hello, This is Ruhul from Bangladesh living in Dhaka. Graduate from Bangladesh University. Currently, I'm working as Senior UX Engineer in Brain Station-23.

Use Bootstrap Grid system only

If you are ignoring Awesome Bootstarp framework for it’s huge CSS classes then it is really sad 😦 But anyway, I come up here with the most important part of Bootstarp which is GRID system. I separated only grid scss files and compile it with Compass. Now you can use Bootstrap grid only. I hope it will help you sometimes.


You can continue compile with Compass…
How to compile SASS to CSS in Compass


How to create skeleton screen

“A skeleton screen is essentially a blank version of a page into which information is gradually loaded.”

Luke Wroblewski

A skeleton screen gives a visual cue that content is loading one after the other into each UI element area. It has been found that skeleton screens play a major role in the perception of users who appear to think that these are not as slow as spinners or progress bars. In fact, many users seem to love them for its look and feel. More power to Skeleton Screens.


<div class="skeleton-screen"></div>


.skeleton-screen:empty {
    margin: auto;
		width: 500px;
		height: 600px; /* change height to see repeat-y behavior */
			radial-gradient( circle 50px at 50px 50px, lightgray 99%, transparent 0 ),
			linear-gradient( 100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 80% ),
			linear-gradient( lightgray 20px, transparent 0 ),
			linear-gradient( lightgray 20px, transparent 0 ),
			linear-gradient( lightgray 20px, transparent 0 ),
			linear-gradient( lightgray 20px, transparent 0 );

		background-repeat: repeat-y;

			100px 200px, /* circle */
			50px 200px, /* highlight */
			150px 200px,
			350px 200px,
			300px 200px,
			250px 200px;

			0 0, /* circle */
			0 0, /* highlight */
			120px 0,
			120px 40px,
			120px 80px,
			120px 120px;

		animation: shine 1s infinite;

	@keyframes shine {
		to {
				0 0,
				100% 0, /* move highlight to right */
				120px 0,
				120px 40px,
				120px 80px,
				120px 120px;

:before and :after pseudo-element on an input field?

:before and :after render inside a container and <input> can not contain other elements.

Pseudo-elements can only be defined (or better said are only supported) on container elements. Because the way they are rendered is within the container itself as a child element. input can not contain other elements hence they’re not supported. A button on the other hand that’s also a form element supports them, because it’s a container of other sub-elements.

If you ask me, if some browser does display these two pseudo-elements on non-container elements, it’s a bug and a non-standard conformance. Specification directly talks about element content…

W3C specification

If we carefully read the specification it actually says that they are inserted inside a containing element:

Authors specify the style and location of generated content with the :before and :after pseudo-elements. As their names indicate, the :before and :after pseudo-elements specify the location of content before and after an element’s document tree content. The ‘content’ property, in conjunction with these pseudo-elements, specifies what is inserted.