With the initial release of Yiibu's Profile, Detector is already YABFDL (Yet Another Browser- and Feature-Detection Library). Ever since I heard Yiibu's talk, Adaptation, the core concepts & features of Detector have been floating around in my head. I've finally turned those ideas into code and created this demo. To learn more about Detector and how it works please check out the README on GitHub.

Both of the following Detector profiles were pulled from a profile already in the system that you asked to view. Because it's an archived profile the browser-side tests were not run.

Archived Detector Browser Profile

The following browser profile was created using ua-parser-php. This information is derived solely from the user agent string for your browser.

Browser Properties Previous Profile | Next Profile
User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
UA Hash: 94087c43d51ff6840604d50f48ee69f0
Browser/OS: Chrome 24.0.1312/Windows 7
Is Mobile? false
Is Mobile Device? false
Is Tablet? false
Is Computer? true
Is Spider? false

Something wrong with this profile? Please, let me know. Note that the "tablet" classification may be incorrect for those Android tablets using an OS older than Android 3.0.

Archived Detector Feature Profile

The following feature profile was primarily created using Modernizr's core tests. The left column of results, Your Browser, is populated by JavaScript using a copy of Modernizr that is loaded with this page. The right column, Detector Profile, is populated by PHP using the profile created by Detector for your browser. In addition to the core tests I've added an extended test that checks for emoji support as well as a per request test to check the device pixel ratio. Both were added using the Modernizr.addTest() Plugin API. To learn more about core, extended, and per request tests please review the README. To access any of these options in your PHP app you'd simply type $ua->featureName.

Feature Profile Properties
coreVersion: 0.95
family: desktop
To learn more about families please review the family tutorial.
CSS3 Features Your Browser Detector Profile
backgroundsize:N/Atrue
bgrepeatround:N/Afalse
bgrepeatspace:N/Afalse
bgsizecover:N/Atrue
borderimage:N/Atrue
borderradius:N/Atrue
boxshadow:N/Atrue
boxsizing:N/Atrue
cssanimations:N/Atrue
csscolumns:N/Atrue
cssgradients:N/Atrue
cssreflections:N/Atrue
cssremunit:N/Atrue
cssresize:N/Atrue
cssscrollbar:N/Atrue
csstransforms:N/Atrue
csstransforms3d:N/Atrue
csstransitions:N/Atrue
cubicbezierrange:N/Atrue
flexbox:N/Afalse
fontface:N/Atrue
generatedcontent:N/Atrue
hsla:N/Atrue
multiplebgs:N/Atrue
opacity:N/Atrue
overflowscrolling:N/Afalse
rgba:N/Atrue
textshadow:N/Atrue
HTML5 Features Your Browser Detector Profile
adownload:N/Atrue
applicationcache:N/Atrue
audio->m4a:N/Afalse
audio->mp3:N/Afalse
audio->ogg:N/Atrue
audio->wav:N/Atrue
audiodata:N/Atrue
blobworkers:N/Afalse
canvas:N/Atrue
canvastext:N/Atrue
contenteditable:N/Atrue
createelement-attrs:N/Afalse
dataview:N/Atrue
dataworkers:N/Afalse
devicemotion:N/Afalse
deviceorientation:N/Atrue
draganddrop:N/Atrue
filereader:N/Atrue
filesystem:N/Atrue
formvalidation:N/Atrue
fullscreen:N/Atrue
geolocation:N/Atrue
hashchange:N/Atrue
history:N/Atrue
indexeddb:N/Atrue
input->autocomplete:N/Atrue
input->autofocus:N/Atrue
input->list:N/Atrue
input->max:N/Atrue
input->min:N/Atrue
input->multiple:N/Atrue
input->pattern:N/Atrue
input->placeholder:N/Atrue
input->required:N/Atrue
input->step:N/Atrue
inputtypes->color:N/Atrue
inputtypes->date:N/Atrue
inputtypes->datetime:N/Afalse
inputtypes->datetime-local:N/Afalse
inputtypes->email:N/Atrue
inputtypes->month:N/Afalse
inputtypes->number:N/Atrue
inputtypes->range:N/Atrue
inputtypes->search:N/Atrue
inputtypes->tel:N/Atrue
inputtypes->time:N/Atrue
inputtypes->url:N/Atrue
inputtypes->week:N/Afalse
localstorage:N/Atrue
meter:N/Atrue
microdata:N/Afalse
notification:N/Atrue
performance:N/Atrue
postmessage:N/Atrue
progressbar:N/Atrue
quotamanagement:N/Atrue
scriptasync:N/Atrue
scriptdefer:N/Atrue
sessionstorage:N/Atrue
sharedworkers:N/Atrue
speechinput:N/Atrue
time:N/Afalse
userselect:N/Atrue
video->h264:N/Atrue
video->ogg:N/Atrue
video->webm:N/Atrue
webaudio:N/Atrue
webintents:N/Afalse
websockets:N/Atrue
websocketsbinary:N/Atrue
websqldatabase:N/Atrue
webworkers:N/Atrue
Misc. Features Your Browser Detector Profile
battery:N/Afalse
cookies:N/Atrue
eventsource:N/Atrue
gamepad:N/Afalse
ie8compat:N/Afalse
json:N/Atrue
lowbandwidth:N/Afalse
lowbattery:N/Afalse
nocookies:N/Afalse
touch:N/Afalse
unicode:N/Atrue
webgl:N/Atrue
While a device may be touch-based that doesn't not mean it supports touch events which is what I'm testing for here.
Browser Class via Media Queries Your Browser Detector Profile
desktop:N/Atrue
mediaqueries:N/Atrue
mobile:N/Afalse
tablet:N/Atrue
This feature needs some love as it's not always returning information correctly.
Detector Extended Test Features Your Browser Detector Profile
emoji:N/Afalse
extendedVersion:N/A1.0
To learn more about extended tests and their purpose please review the test tutorial.

About Detector

Detector is a simple, PHP- and JavaScript-based browser- and feature-detection library that can adapt to new devices & browsers on its own without the need to pull from a central database of browser information.

Detector dynamically creates profiles using a browser's (mainly) unique user-agent string as a key. Using Modernizr it records the HTML5 & CSS3 features a requesting browser may or may not support. ua-parser-php is used to collect and record any useful information (like OS or device name) the user-agent string may contain.

With Detector a developer can serve the appropriate markup, stylesheets, and JavaScript to a requesting browser without being completely dependent on a front-end-only resource loader nor a browser-detection library being up-to-date.

Check out the README for more information as well as the full list of features.

Get the Code

Demos

Tutorials

More Information

Credits

Detector is based on Modernizr, modernizr-server, and the browser-detection library ua-parser-php. It also benefits from a healthy dose of inspiration from Yiibu's Profile.

Share This

Archive

The following 12084 user agent profiles are already in the system (readable list):