\environment columnsets-000

\startuseMPgraphic{mpos:par:columns}
  path p ; numeric h ;
  for i=1 upto nofmultipars :
    p := multipars[i] ;
    h := bbheight(p) ;
    if multikind[i] = "single" :
      fill p topenlarged -.5h
        withshademethod "linear"
        withshadedirection shadedup
        withcolor \MPcolor{color-1} shadedinto white ;
      fill p bottomenlarged -.5h
        withshademethod "linear"
        withshadedirection shadedup
        withcolor white shadedinto \MPcolor{color-1} ;
    elseif multikind[i] = "first" :
      fill p
        withshademethod "linear"
        withshadedirection shadedup
        withcolor \MPcolor{color-2} shadedinto white ;
    elseif multikind[i] = "middle" :
      fill p topenlarged -.5h
        withshademethod "linear"
        withshadedirection shadedup
        withcolor \MPcolor{color-2} shadedinto white ;
      fill p bottomenlarged -.5h
        withshademethod "linear"
        withshadedirection shadedup
        withcolor white shadedinto \MPcolor{color-3} ;
    elseif multikind[i] = "last" :
      fill p
        withshademethod "linear"
        withshadedirection shadedup
        withcolor white shadedinto \MPcolor{color-3} ;
    fi ;
  endfor ;
\stopuseMPgraphic

\definecolumnset
  [example]
  [n=4,
   page=left]

\definetextbackground
  [shade]
  [location=paragraph,
   mp=mpos:par:columns,
   before=\blank,
   after=\blank]

\starttext

\startcolumnset[example]

  \dorecurse {40} {
    \starttextbackground[shade]
      \fakewords{10}{200}
    \stoptextbackground
    \par
  }

\stopcolumnset

\stoptext
